SQL Server2005-SQLステートメントの削除が集積から鍵テーブルをクエリにtablenames?

StackOverflow https://stackoverflow.com/questions/1222432

質問

今は回復のバックアップ、Microsoft Dynamics NAVのデータベースは、残念ながら失敗したという設定のクラスタ化されたキーのテーブルについて集ます。

にNAV、会社のデータベースが独自のコピーをテーブルを先頭に付け、社名など COMPANY$User_Setup.って除集鍵を与えられた会社で、他のテーブル名で始まり'の会社$'.

ではもったSQL文が実行す。

感謝。

コンテンツ一覧 マーティン

役に立ちましたか?

解決

する必要がありまいとしてカーソルを移動させます。仮に各PK制約はconsistantlyに基づいてテーブル名しかできないようなもの(未審査、誤字を含む場合がありまvauge構文エラー):

DECLARE mycursor CURSOR FOR SELECT name FROM sysobjects WHERE name LIKE 'Company$%'

OPEN CURSOR
FETCH NEXT FROM mycursor INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @sql = N'ALTER TABLE QUOTENAME(' + @tablename + ') DROP CONSTRAINT PK_' + @tablename 
    EXEC sp_ExecuteSQL @sql
    FETCH NEXT FROM mycursor INTO @tablename
END

CLOSE CURSOR
DEALLOCATE CURSOR

ごPKのない名前に基づく配列しょ変更するものクエリに基づくsysconstraintsはsysindexesの実PKの名前です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top