【问题标题】:Asp Classic & Firbird Sql without quotation marksAsp Classic & Firbird Sql 不带引号
【发布时间】:2018-03-14 14:24:19
【问题描述】:

我在 ASP Classic 中有一个使用 Firebird 数据库的脚本。我想执行一个不带“引号”的查询

现在我必须这样写:

SQL = "SELECT ""TArticoli"".""IDArticolo"",""TArticoli"".""Desc"" FROM ""TArticoli"";"

我会这样写:

SQL = "SELECT TArticles.IDArticle, TArticles.Desc FROM TArticles;"

第一个被接受,第二个不被接受,我该怎么做?

【问题讨论】:

  • Desc 是 Firebird 中的一个关键字。请改用“Desc”。

标签: sql asp-classic firebird quotation-marks


【解决方案1】:

你不能。 DESC 是 Firebird 中的保留字,因此为了能够将其用作列名(或任何其他对象名称),您需要将其括在引号中。

第二个问题是您当前正在使用

SELECT "TArticoli"."IDArticolo","TArticoli"."Desc" FROM "TArticoli"

这意味着您的表名和列名都区分大小写,在这种情况下,引用这些对象名是强制性的。不带引号的对象名称不区分大小写,但映射到大写的对象名称。这意味着select * from TArticoli 将从名为TARTICOLI 的表中进行选择,而select * from "TArticoli" 将从名为TArticoli 的表中进行选择。

因此,除非您要重命名或重新创建所有表或列,否则您将无法摆脱引号。唯一可以减少引号数量的方法是不要在列前面加上表名(在显示的查询中没有必要),或者对表使用不区分大小写的别名,例如

SELECT "IDArticolo", "Desc" FROM "TArticoli"

SELECT a."IDArticolo", a."Desc" FROM "TArticoli" AS a

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多