0

テーブルの名前を変更し、そのテーブルのすべての制約を外部キー関係で削除して、それらをすべてバックアップすることに成功しました。ただし、現在、PK_tblFoo が複数の場所に存在するポイントにいます (テーブルを別の DB に転送するとき)。テーブルの名前を変更しても、主キーの名前は変更されません。

主キーの名前をカスケードするにはどうすればよいですか? テーブルの名前を変更しました。この部分を理解する必要があります。

4

2 に答える 2

1

これを手動で行う必要があると思います。すべての 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 名で設定します....うーん....これにはしばらく時間がかかります。

于 2008-10-16T13:59:11.297 に答える
0

リファクタリング ツールを使用することもできます。Visual Studio Team Edition for Database Professionals でこれを処理できることはわかっています。

于 2008-10-22T14:53:17.877 に答える