在sql server 2008中设置newsequentialid()默认值时出错

时间:2009-06-18 23:14:45

标签: sql-server-2008

我在表中有一个uniqueidentifier列,它不是键或索引。我想使用NEWSEQUENTIALID()设置默认值,但我收到错误:

  

验证列的默认值时出错。

但如果我使用NEWID()没有错误。发生了什么事?

编辑:您可以忽略错误对话框并继续。

4 个答案:

答案 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)

这是不正确的。

按照此处的步骤操作:

http://www.geekinterview.com/question_details/31705