使用DEFAULT(newid())方法,正如@SLaks所提到的那样,你将允许任何人更改Guid列中的Guid值,这可能是不好的。避免这种情况的一种方法是将"Guid"列设置为持续计算列。这样,你甚至不能"强制"另一个值进入该列。但是,由于NEWID()函数是非确定性的,所以你无法将计算列定义为持久化的,整个方法就失败了,因为如果不将其设置为持久化,则每次选择该行时都会生成新的Guid。话虽如此,我认为你有两个选择:坚持使用DEFAULT(newid())方法或使用触发器来实现。
请尝试使用以下查询: CREATE TABLE TEST ( ID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID() PRIMARY KEY, TESTCOLUMN CHAR(2000) DEFAULT REPLICATE('X',2000) ) GO