我有一个绑定了默认值的列,UW_ZeroDefault
我正在尝试摆脱它。
据我了解,此默认值是通过使用CREATE DEFAULT创建的,然后该列已通过使用绑定到此默认值sp_bindefault
。
通常要删除此默认值,您会使用sp_unbinddefault
,但由于 SQL Server 2008 中存在错误(请参阅知识库文章),我收到错误消息:
对象名称“ ”无效。
我无法对 SQL Server 安装进行任何更改,因此我正在寻找一些解决方法来删除这个东西。
以下讨论摘要:
解决方案 1:
正如@gbn 所建议的那样,如果您可以将数据库恢复到 SQL Server 2000,那就去做并sp_unbindefault
在那里使用。那应该有效。
但是如果你不能移动它(那是我的情况)......
解决方案 2:
制作表格的副本并用于CONSTRAINT
设置默认值而不是绑定默认值。这包括删除所有类型的约束、FK 等,然后重新创建它们。这是一个糟糕的解决方案,但我找不到更好的解决方案。
根据BOL 而不是 KB,使用 ALTER TABLE
默认名称可以是用户提供的或系统生成的。
要找到它并生成所需的 SQL: