在SQL Server中有两种方式可以创建标识符
1、IDNETITY
在表中自动进行行编号
该属性只在使用它的表中保证是唯一的
使用$IDENTITY引用IDENTITY列
实例
USE [STUDENT_MANAGER]--数据库
GO
CREATE TABLE idendification_test--创建表
(
ID int IDENTITY(1,2),
NAME varchar(20)
)
GO
INSERT INTO idendification_test(NAME) VALUES('张三');
INSERT INTO idendification_test (NAME) VALUES('李四');
INSERT INTO idendification_test (NAME) VALUES('王五');
GO
SELECT * FROM idendification_test
GO
SELECT $identity from ORDERS--引用
2、Uniqueidentifier
通过从 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx形式的字符串常量进行转换,其中,每个 x 都是 0-9 或 a-f 范围内的十六进制数字。例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 为有效的 uniqueidentifier 值。
做一个ROWGUIDCOL属性的列,生成的标识符列在整个数据库或全球联网的所有计算机上的所有数据库中是唯一的
数据库引擎不会为uniqueidentifier类型的列自动生成值,如要插入全局唯一值,请为该列创建DEFAULT定义来使用NEWID或NEWSEQUETIALID函数生成全局唯一值,
使用$ROWGUID关键字引用具有ROWGUIDCOL属性的列
OBJECTPROPERTY函数可用于确定一个表是否具有ROWGUIDCOL列,COLUMNPROPERTY函数可用于确定ROWGUIDCOL列的名称
实例
CREATE TABLE Unique_data
(
ID uniqueidentifier DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
NAME varchar(30)
)
GO
INSERT INTO Unique_data(NAME) VALUES('张三');
INSERT INTO Unique_data(NAME) VALUES('李四');
GO
SELECT * FROM Unique_data
SELECT $ROWGUID FROM Unique_data--引用