sql server的对象命名规则是什么

sql server的对象命名规则是什么,第1张

自己搜索一下就是了,我给你copy一段:

为了提供完善的数据库管理机制,SQL Server 设计了严格的命名规则。在创建或引用数据库实体,如表、索引、约束等时,必须遵守SQL Server 的命名规则,否则有可能发生一些难以预料和检查的错误。

本文将讲述:标识符的分类和格式规定;数据库对象的命名规定与使用原则。希望对您会有所帮助。

标识符分类

SQL Server的所有对象,包括服务器、数据库以及数据库对象,如表、视图、列、索引、触发器、存储过程、规则、默认值和约束等都可以有一个标识符。对绝大多数对象来说,标识符是必不可少的,但对某些对象如约束来说,是否规定标识符是可选的。对象的标识符一般在创建对象时定义,作为引用对象的工具使用。

例如下面的SQL语句:

Create table student

(

id int primary key,

name varchar(20)

)

这个例子创建了一个表格,表格的名字是一个标识符:student;表格中定义了两列,列的名字分别是id,name,他们都是合法的标识符。这个例子还定义另外一个未命名的主键约束。

SQL Server一共定义了两种类型的标识符:规则标识符(Regular identifier)和界定标识符(Delimited identifier)。

规则标识符

规则标识符严格遵守标识符有关格式的规定。所以在T-SQL语句中凡是规则标识符都不必使用界定符,如[]和‘’,来进行界定。

如上述例子中使用的表名student 就是一个规则标识符,在student上不必添加界定符。

界定标识符

界定标识符是那些使用了如[]和‘’等界定符号来进行位置限定的标识符,使用了界定标识符,既可以遵守标识符命名规则,也可以不遵守标识符命名规则。

Select * from [student] 是要从student 表格中查询出所有的数据与

Select * from student 等效。

为什么呢?因为在“[]”中的标识符遵守标识符命名规则,“[]”被忽略不计。

但如果是不遵守标识符命名规则的标识符,那么在T-SQL语句中必须使用界定符号加以限定,如:

Select * from [my table]

Where [order]=10

在这个例子中,必须使用界定标识符,因为在from子句中的标识符my talbe中含有空格,而where子句中的标识符order 是系统保留字(在查询分析器里“order”变蓝色)。这两个标识符都不遵守标识符命名规则,必须使用界定符,否则无法通过代码编译。

标识符格式

标识符格式的规定,其具体内容如下:

标识符的首字母必须是以下两种情况之一:

所有在统一码(Unicode)2.0标准规定的字符,包括26个英文字母a-z和A-Z,以及其他一些语言字符,如汉字。例如可以给一个表格命名为“学生基本情况”。下划线“-”、“@”或“#”。

标识符首字母后的字符可以是:

所有在统一码(Unicode)2.0标准规定的字符,包括26个英文字母a-z和A-Z,以及其他一些语言字符,如汉字。下划线“-”、“@”、“$”或“#”。

0,1,2,3,4,5,6,7,8,9。

标识符不允许是T-SQL的保留字。

由于T-SQL不区分大小写,所以无论是保留字的大写还是小写都不允许使用。

标识符内部不允许有空格或特殊字符。

Select * from stu[de]nt –编译器将返回错误信息。因为在标识符stu[de]nt中包含了特殊字符“[”和“]”,所以在编译上述语句时出错。

?

以某些特殊符号开头的标识符在SQL Server系统中具有特定的含义。如“@”开头的标识符表示这是一个局部变量或是一个函数的参数;以“#”开头的标识符表示这是一个临时表或存储过程;一个以“##”开头的标识符表示这是一个全局的临时数据库对象。T-SQL的全局变量以标志“@@”开头。为避免同这些全局变量混淆,建议不要使用“@@”作为标识符的开始。

无论是界定标识符还是规则标识符都最多只能容纳128个字符,对于本地的临时表最多可以有116个字符。

对象命名规则

SQL Server 2000 的数据库对象名字由1-128个字符组成,不区分大小写。在一个数据库中创建了一个数据库对象后,数据库对象的全名应该由服务器名、数据库名、拥有者名和对象名这四个部分组成,格式如下:

[[[server.][database].][owner_name].]object_name 命名必须都要符合标识符的规定。

在实际引用对象时,可以省略其中某部分的名称,只留下空白的位置。

实例的命名习惯

在SQL Server 2000中默认实例的名字采用计算机名,实例的名字一般由计算机名字和实例名字两部分组成。

总之,正确掌握数据库的命名和引用方式是用好SQL Server 2000的前提,也有助于用户理解SQL Server 2000中的其他内容。

常规标识符规则

常规标识符的格式规则取决于数据库的兼容级别,兼容级别可以用 sp_dbcmptlevel 来设置。有关更多信息,请参见 sp_dbcmptlevel。当兼容级别为 80 时,规则是:

第一个字符必须是下列字符之一:

Unicode 标准 2.0 所定义的字母。Unicode 中定义的字母包括拉丁字母 a-z 和 A-Z,以及来自其它语言的字母字符。

下划线 (_)、at 符号 (@) 或者数字符号 (#)。

在 SQL Server 中,某些处于标识符开始位置的符号具有特殊意义。以 at 符号开始的标识符表示局部变量或参数。以一个数字符号开始的标识符表示临时表或过程。以双数字符号 (##) 开始的标识符表示全局临时对象。

某些 Transact-SQL 函数的名称以双 at 符号 (@@) 开始。为避免混淆这些函数,建议不要使用以 @@ 开始的名称。

后续字符可以是:

Unicode 标准 2.0 所定义的字母。

来自基本拉丁字母或其它国家/地区脚本的十进制数字。

at 符号、美元符号 ($)、数字符号或下划线。

标识符不能是 Transact-SQL 的保留字。SQL Server 保留其保留字的大写和小写形式。

不允许嵌入空格或其它特殊字符。

当标识符用于 Transact-SQL 语句时,必须用双引号或括号分隔不符合规则的标识符。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9980975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存