要重命名CHECK,我使用如下查询:
EXEC sp_rename 'test_create_table.test_check.check_1', 'check1', 'OBJECT'
查询执行时没有错误,但约束名称未更改。
有人知道为什么吗?
答案 0 :(得分:2)
您需要特别注意documentation页面上的警告:
如果要重命名的对象是约束, object_name 必须采用 schema.constraint 形式。
我不认为你给的名字是。因此,如果这是test_create_table
架构中名为foobar
的表的约束,那么您实际需要的是:
EXEC sp_rename 'foobar.check_1', 'check1', 'OBJECT'
我不知道为什么当你以其他方式尝试时它没有提供任何形式的反馈,但你会注意到不收到此消息:
警告:更改对象名称的任何部分可能会破坏脚本和存储过程。
sp_rename
成功时通常的输出。
答案 1 :(得分:0)
这应该成功重命名你的表。我稍微修改了你的命令。
EXEC sp_rename'test_create_table.test_check','check1';
只是验证我所看到的内容 - test_create_table是您的架构的名称,test_check是您的表的名称,您是否正在将表重新映射到check1?
此外,它看起来像是包含一个对象。确保已创建对象:CREATE OBJECT YourObjectName 在此处包括您的表格信息。
此链接也可能有所帮助:http://technet.microsoft.com/en-us/library/ms188351.aspx
目标代码的示例位于底部。