テーブルの名前を変更し、そのテーブルのすべての制約を外部キー関係で削除して、それらをすべてバックアップすることに成功しました。ただし、現在、PK_tblFoo が複数の場所に存在するポイントにいます (テーブルを別の DB に転送するとき)。テーブルの名前を変更しても、主キーの名前は変更されません。
主キーの名前をカスケードするにはどうすればよいですか? テーブルの名前を変更しました。この部分を理解する必要があります。
テーブルの名前を変更し、そのテーブルのすべての制約を外部キー関係で削除して、それらをすべてバックアップすることに成功しました。ただし、現在、PK_tblFoo が複数の場所に存在するポイントにいます (テーブルを別の DB に転送するとき)。テーブルの名前を変更しても、主キーの名前は変更されません。
主キーの名前をカスケードするにはどうすればよいですか? テーブルの名前を変更しました。この部分を理解する必要があります。
これを手動で行う必要があると思います。すべての 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]
次に、すべての FK 制約を新しい PK 名で設定します....うーん....これにはしばらく時間がかかります。
リファクタリング ツールを使用することもできます。Visual Studio Team Edition for Database Professionals でこれを処理できることはわかっています。