CREATE TABLE test1 (id uniqueidentifier ROWGUIDCOL DEFAULT NEWID(),name varchar(10));CREATE TABLE test2 (id uniqueidentifier DEFAULT NEWID(),name varchar(10));insert into test1(name) values('abc');insert into test2(name) values('abc');select * from test1; --ECF21540-FCAB-47B7-9557-D59E42E47CB7select * from test2; --919D8A3A-F68B-4D14-A19F-ACB470A8900D都是生成唯一值,加个ROWGUIDCOL也看不出有什么变化,ROWGUIDCOL的作用究竟是什么呢?
解决方案 »
- 还是insert into select问题excel导入sqlserver
- 存贮过程最后的一句 return(0) 或是 return(1) 的作用是什么呢?
- 菜鸟问题,这个sql语句怎么写?
- 怪脑袋,怪想法,谁能帮我解释 select '单引号'=1,'人间正道'=2, "双引号"=2 ,'莫名其妙', 't',12 这个select语句的含义。
- isnumeric 函数请教各位大虾
- 局域网中ODBC连接SQL server怎么总是失败?
- 关于并发下的@@identity
- sum里面可不可以有begin end ,可不可以有存储过程?
- db2新建用户的初始密码是什么啊?
- WIN10配置SQL数据库
- 错误提示 :EXECUTE 后的事务计数指示缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句
- sql server基于时间点的恢复失败!!
from test1
select ROWGUIDCOL
from test1
rowguidcol:指定列为全球惟一鉴别行号列(rowguidcol是Row Global UniqueIdentifier Column的缩写)。此列的数据类型必须为UNIQUEIDENTIFIER类型。一个表中数据类型为UNIQUEIDENTIFIER的列中只能有一个列被定义为rowguidcol列。rowguidcol属性不会使列值具有惟一性,也不会自动生成一个新的数据值给插入行。需要在INSERT语句中使用NEWID()函数或指定列的默认值为NEWID()函数。
修改表:
{ADD|DROP}rowguidcol}:添加或删除列的rowguidcol属性。rowguidcol属性只能指定给一个UNIQUEIDENTIFIER列。
SELECT子句:
rowguidcol:返回行全局惟一标识列。如果在FROM子句中有多个表具有rowguidcol属性,则必须用特定的表名(如T1.rowguidcol)限定 rowguidcol。
/*
ROWGUIDCOL
指示新列是行 GUID 列。对于每个表,只能将其中的一个 uniqueidentifier 列指定为 ROWGUIDCOL 列。ROWGUIDCOL 属性只能分配给 uniqueidentifier 列。如果数据库兼容级别小于或等于 65,则 ROWGUIDCOL 关键字无效。有关详细信息,请参阅 sp_dbcmptlevel (Transact-SQL)。用户定义数据类型列不能使用 ROWGUIDCOL 指定。ROWGUIDCOL 属性并不强制列中所存储值的唯一性。该属性也不会为插入到表中的新行自动生成值。若要为每列生成唯一值,请在 INSERT 语句中使用 NEWID 函数,或使用 NEWID 函数作为该列的默认值。 */
go