2

要重命名 CHECK,我使用如下查询:

 EXEC sp_rename 'test_create_table.test_check.check_1', 'check1', 'OBJECT'

查询执行没有错误,但约束的名称没有改变。

有人知道为什么吗?

4

2 回答 2

2

您需要特别注意文档页面上的警告:

如果要重命名的对象是约束,则object_name必须采用schema.constraint形式。

我不认为你给的名字是。test_create_table因此,如果这是对架构中调用的表的约束foobar,那么您实际需要的是:

EXEC sp_rename 'foobar.check_1', 'check1', 'OBJECT'

我不知道为什么当您以其他方式尝试时它没有提供任何形式的反馈,但您会注意到您也没有收到此消息:

警告:更改对象名称的任何部分都可能破坏脚本和存储过程。

sp_rename这是成功时的通常输出。

于 2014-01-10T14:09:39.083 回答
0

这应该成功地重命名您的表。我稍微修改了你的命令。

EXEC sp_rename 'test_create_table.test_check', 'check1';

只是验证我所看到的 - test_create_table 是您的架构的名称,test_check 是您的表的名称,您仍然是要检查的表吗?

此外,看起来您正在包含一个对象。确保您已经创建了您的对象: CREATE OBJECT YourObjectName ON 在此处包含您的表信息。

此链接也可能有帮助:http ://technet.microsoft.com/en-us/library/ms188351.aspx

带有目标代码的示例在底部。

于 2014-01-10T14:19:48.450 回答