我正在尝试更改 Azure 存储中表的主键。计划是创建一个新表,移动数据并删除旧表。问题是我需要所有约束名称都与旧的相同。
因此,在重命名旧表和该表上的所有约束之前,我无法创建新表。我已经在约束上尝试过 sp_rename,但没有运气:
sp_rename 'PK_dbo.ContactSessions', 'PK_dbo.ContactSessions_old', 'OBJECT'
Run Code Online (Sandbox Code Playgroud)
给我:
Either the parameter @objname is ambiguous or the claimed @objtype (OBJECT) is wrong.
Run Code Online (Sandbox Code Playgroud)
如果我像这样运行 sp_rename:
sp_rename 'PK_dbo.ContactSessions', 'PK_dbo.ContactSessions_old'
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
No item by the name of 'PK_dbo.ContactSessions' could be found in the current database 'testing_only', given that @itemtype was input as '(null)'.
Run Code Online (Sandbox Code Playgroud)
我看过这个帖子:如何更改 SQL Azure 上的现有主键? 并尝试
create clustered index [NEW_INDEX_NAME] on [ContactSessions] ([ContactSessionId])
with (drop_existing=on);
Run Code Online (Sandbox Code Playgroud)
并得到错误:
Could not find any index named 'NEW_INDEX_NAME' for table 'ContactSessions'.
Run Code Online (Sandbox Code Playgroud)
还有其他选项可以更改索引名称吗?
我知道这是可能的,因为我可以右键单击 SSMS …