【发布时间】:2009-04-15 13:35:15
【问题描述】:
我需要知道在 SQL 参数名称中使用哪些有效字符。
假设像SELECT * FROM tblTest WHERE testid = @[X] 这样简单,例如,如果 X 包含连字符,则语句将失败。参数名称的有效字符是什么?
【问题讨论】:
标签: sql sql-server parameters
我需要知道在 SQL 参数名称中使用哪些有效字符。
假设像SELECT * FROM tblTest WHERE testid = @[X] 这样简单,例如,如果 X 包含连字符,则语句将失败。参数名称的有效字符是什么?
【问题讨论】:
标签: sql sql-server parameters
在您的在线 SQL 书籍中搜索“标识符”,您应该会找到:
正则标识符规则
常规标识符的格式规则取决于数据库 兼容级别。可以使用 sp_dbcmptlevel 设置此级别。 当兼容级别为 90 时,适用以下规则:
第一个字符必须是以下之一:
- Unicode 标准 3.2 定义的字母。字母的 Unicode 定义包括从 a 到 z 的拉丁字符,
从 A 到 Z,以及其他语言的字母字符。- 下划线 (_)、at 符号 (@) 或数字符号 (#)。
标识符开头的某些符号具有特殊的 在 SQL Server 中的含义。以 at 开头的常规标识符 符号始终表示局部变量或参数,不能使用 作为任何其他类型对象的名称。开始的标识符 带有数字符号的表示临时表或过程。一个 以双数字符号 (##) 开头的标识符表示全局 临时对象。虽然数字符号或双数字符号 字符可用于开始其他类型对象的名称, 我们不推荐这种做法。
某些 Transact-SQL 函数的名称以双 at 符号开头 (@@)。为避免与这些功能混淆,您不应使用 以@@ 开头的名称。
后续字符可以包括以下内容:
- Unicode 标准 3.2 中定义的字母。
- 来自基本拉丁文或其他国家文字的十进制数字。
- at 符号、美元符号 ($)、数字符号或下划线。
标识符不能是 Transact-SQL 保留字。 SQL 服务器 保留保留字的大写和小写版本。 不允许嵌入空格或特殊字符。补充 不允许使用字符。
在您的在线 SQL 书籍中搜索“分隔标识符”,您应该会找到:
标识符的主体可以包含 中的任意字符组合 当前代码页,除了 分隔字符本身。为了 例如,分隔标识符可以 包含空格,任何字符都有效 对于常规标识符,以及任何一个 以下字符。
tilde (~) hyphen (-) exclamation point (!) left brace ({) percent (%) right brace (}) caret (^) apostrophe (') ampersand (&) period (.) left parenthesis (() backslash (\) right parenthesis ()) accent grave (`)
马克
【讨论】:
在联机丛书中搜索标识符 [SQL Server]。它具有参数名称必须遵循的规则。 (这是SQL Server 2008的搜索),其他版本应该是类似的搜索
【讨论】: