+ -
当前位置:首页 → 问答吧 → 关于ROWGUIDCOL属性

关于ROWGUIDCOL属性

时间:2011-12-12

来源:互联网

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-D59E42E47CB7

select * from test2; --919D8A3A-F68B-4D14-A19F-ACB470A8900D

都是生成唯一值,加个ROWGUIDCOL也看不出有什么变化,ROWGUIDCOL的作用究竟是什么呢?

作者: ilovemk   发布时间: 2011-12-12

ROWGUIDCOL提供了一个更通用的方法来查询标识符

SQL code
select ID
from test1
select ROWGUIDCOL
from test1

作者: wufeng4552   发布时间: 2011-12-12

ROWGUIDCOL相当于字段别名,查询的时候不需要知道字段名直接select ROWGUIDCOL就可以。

作者: ssp2009   发布时间: 2011-12-12

创建表:
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。

作者: fredrickhu   发布时间: 2011-12-12

SQL code
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');
/*
ROWGUIDCOL 
指示新列是行 GUID 列。对于每个表,只能将其中的一个 uniqueidentifier 列指定为 ROWGUIDCOL 列。ROWGUIDCOL 属性只能分配给 uniqueidentifier 列。如果数据库兼容级别小于或等于 65,则 ROWGUIDCOL 关键字无效。有关详细信息,请参阅 sp_dbcmptlevel (Transact-SQL)。用户定义数据类型列不能使用 ROWGUIDCOL 指定。

ROWGUIDCOL 属性并不强制列中所存储值的唯一性。该属性也不会为插入到表中的新行自动生成值。若要为每列生成唯一值,请在 INSERT 语句中使用 NEWID 函数,或使用 NEWID 函数作为该列的默认值。 

*/
go

作者: qianjin036a   发布时间: 2011-12-12