我在表中有一个uniqueidentifier列,它不是键或索引。我想使用NEWSEQUENTIALID()设置默认值,但我收到错误:
验证列的默认值时出错。
但如果我使用NEWID()没有错误。发生了什么事?
编辑:您可以忽略错误对话框并继续。
答案 0 :(得分:12)
引用this question的已接受答案。
解决方法:创建表而不指定任何默认值,然后在普通查询窗口中键入此T-SQL语句并运行它:
ALTER TABLE dbo.YourTable ADD CONSTRAINT DF_SerialID DEFAULT newsequentialid() FOR SerialID
答案 1 :(得分:9)
这是设计师中的一个错误,不是由微软修复的。
http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/cad8a4d7-714f-44a2-adb0-569655ac66e6
答案 2 :(得分:0)
根据文件: http://msdn.microsoft.com/en-us/library/ms189786.aspx 备注部分:
... 当在DEFAULT表达式中使用NEWSEQUENTIALID()时,它不能与其他标量运算符组合使用。例如,您无法执行以下操作:
CREATE TABLE myTable(ColumnA uniqueidentifier DEFAULT dbo.myfunction(NEWSEQUENTIALID())) ...
这会回答你的问题吗?
答案 3 :(得分:0)