带引号的标识符
在 SQL 语句中,包含特殊字符或匹配关键字的标识符必须括在标识符引号字符中;包含在此类字符中的标识符称为带引号的标识符(也称为 SQL-92 中的分隔标识符)。 例如,以下 SELECT 语句中引用了应付帐款标识符:
SELECT * FROM "Accounts Payable"
引用标识符的原因是使语句可分析。 例如,如果上一语句中没有引用应付帐款,则分析程序将假定有两个表:帐户和应付,并返回语法错误,即它们没有用逗号分隔。 标识符引号字符特定于驱动程序,并使用 SQLGetInfo 中的 SQL_IDENTIFIER_QUOTE_CHAR 选项进行检索。 使用 SQLGetInfo 中的 SQL_SPECIAL_CHARACTERS and SQL_KEYWORDS 选项检索特殊字符和关键字的列表。
为了安全起见,可互操作的应用程序通常会引用除伪列以外的所有标识符,例如 Oracle 中的 ROWID 列。 SQLSpecialColumns 将返回伪列的列表。 此外,如果对特殊字符在对象名称中的显示位置进行特定于应用程序的限制,则最好是可互操作的应用程序不要在这些位置使用特殊字符。