我已经成功地重命名了一个表,并通过外键关系删除了该表上的所有约束,并将它们全部备份。但是,现在我正处于 PK_tblFoo 存在多个位置的地步(当我将表转移到另一个数据库时)。重命名表不会重命名主键。
我将如何级联重命名主键?我已经重命名了表格,我只需要弄清楚这部分。
我已经成功地重命名了一个表,并通过外键关系删除了该表上的所有约束,并将它们全部备份。但是,现在我正处于 PK_tblFoo 存在多个位置的地步(当我将表转移到另一个数据库时)。重命名表不会重命名主键。
我将如何级联重命名主键?我已经重命名了表格,我只需要弄清楚这部分。
我相信我需要手动执行此操作,删除所有 FK 约束,运行此人:
IF EXISTS ( SELECT *
FROM sys.indexes
WHERE object_id = OBJECT_ID(N'[dbo].[tblFoo]')
AND name = N'PK_tblBusinessListings' )
ALTER TABLE [dbo].[tblFoo] DROP CONSTRAINT [PK_tblBusinessListings]
GO
ALTER TABLE [dbo].[tblFoo]
ADD CONSTRAINT [PK_tblFoo_1] PRIMARY KEY CLUSTERED ( [ListingID] ASC )
WITH ( PAD_INDEX = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF,
ONLINE = OFF ) ON [PRIMARY]
然后通过新的 PK 名称设置所有 FK 约束....errrgh....这需要一段时间。
您也可以使用重构工具,我知道 Visual Studio Team Edition for Database Professionals 可以处理这个问题。