用户在创建数据库及数据库对象时必须严格遵守SQL Server的命名规则。
一、标识符
在SQL Server中,服务器、数据库和数据库对象(如表、视图、列、索引、触发器、过程、约束和规则等)都有标识符,数据库对象的名称被看成是该对象的标识符。大多数对象要求带有标识符,但有些对象(如约束)中标识符是可选项。
对象标识符是在定义对象时创建的,标识符随后用于引用该对象。
1、标识符格式
在定义标识符时必须遵守以下规定:
(1)标识符的首字符必须是下列字符之一:
Ю统一码(Unicode) 2.0标准中所定义的字母,包括拉丁字母a~z和A~Z以及来自其他语言的字符;
Ю下划线”_”、符号“@”或者数字符号“#”。
在SQL Server中,某些处于标识符开始位置的符号具有特殊意义。以“@”符号开始的标识符表示局部变量或参数;以一个数字符号“#”开始的标识符表示临时表或过程,如表“#gzb”就是一张临时表;以双数字符号“##”开始的标识符表示全局临时对象,如表“##gzb”则是全局临时表。
[注]:某些Transact-SQL函数名称以“@@”符号开始。
(2)标识符的后续字符可以说以下3种:
Ю统一码(Unicode) 2.0标准中所定义的字母。
Ю来自拉丁字母或其他国家/地区脚本的十进制数字。
Ю“@”符号、美元符号“$”、数字符号“#”或下划线“_”。
(3)标识符不允许是Transact-SQL的保留字。
(4)不允许嵌入空格或其他特殊字符。
2、标识符分类
SQL Server将标识符分为以下两种类型:
Ю常规标识符:符合标识符的格式规则;
Ю分隔标识符:包含在双引号(“”)或者方括号([])内的标识符。该标识符可以不符合标识符的格式规则,如[MR GZGLXT]中MR和GZGLXT之间含有空格,但因为使用了方括号,所以视为分隔标识符。
常规标识符和分隔标识符包含的字符必须在1~128之间,对于本地临时表,标识符最多可以有116个字符。
二、对象命名规则
SQL Server 2008的数据库对象的名字由1~128个字符组成,不区分大小写。使用标识符也可以作为对象的名称。
在一个数据库中创建了一个数据库对象后,据库对象的完整名称应该由服务器名、数据库名、拥有者名和对象名四部分组成,其格式如下:
[ [ [server.][database]. ][ owner_name ]. ]object_name
服务器、数据库和所有者的名称即所谓的对象名称限定符。当引用一个对象时,不需要指定服务器、数据库和所有者,可以利用句号标出它们的位置,从而省略限定符。
对象名的有效格式如下:
server.database.owner_name.object_name(指定了所有四个部分的对象名称被称为完全合法名称)
server.database..object_name
server...object_name
server.database.owner_name.object_name
owner_name.object_name
[注]:不允许存在四部分名称完全相同的数据库对象。在同一个数据库中可以存在两个名为EXAMPLE的表格,但前提必须是这两个表的拥有者不同。
三、实例命名规则
使用Microsoft SQL Server 2000可以选择在一台计算机上安装SQL Server的多个实例。SQL Server 2008提供了两种类型的实例,即默认实例和命名实例。
1、默认实例
此实例由运行它的计算机的网络名称标识。使用以前版本SQL Server客户端软件的应用程序可以连接到默认实例。SQL Server 6.5版或SQL Server 7.0版服务器可以作为默认实例操作。但是,一台计算机上每次只能有一个版本作为默认实例运行。
2、命名实例
计算机可以同时运行任意个SQL Server命名实例。实例通过计算机的网络名称加上实例名称以<计算机名称>\<实例名称>格式进行标识,但该实例名不能超过16个字符。