Asp Classic& Firbird Sql没有引号

时间:2018-03-14 14:24:19

标签: sql asp-classic firebird quotation-marks

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

现在我必须写下这个:

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

我会这样写:

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

第一个被接受,第二个不被接受,我怎么能这样做?

1 个答案:

答案 0 :(得分: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