2016-12-22 6 views
0

プライマリキーから列を削除する方法はありますか?私はAlterプライマリキーの制約について話していません。私は、T-SQLスクリプトを使用して主キーから列を解放したいだけです。私は列名を右クリックして列を変更することでそれを行うことができます。 T-SQLスクリプトを使用して同じタスクを実行することはできません。どのようにこのタスクを達成するためのアイデアはありますか?T-SQLスクリプトを使用してSQL Serverの主キー列を変更する方法はありますか

+1

ドロップと 'Index'を再作成が唯一可能な方法 –

+0

が正しい方法はありますか?私は管理スタジオを使用してプライマリキーを削除することができます。 –

+0

おそらく、スタジオは、@Prdpが言及した行に沿って、ボンネットの下で何かをやっているでしょう。 –

答えて

0

これは、T-SQLを使用して実行できます。テーブル名がbranchであるとします。

だから、最初、私たちは次のクエリを使用して主キー制約名を取得します:

結果

'PK_Branch' 

は、今私たちが別のクエリでその結果を使用

クエリ

SELECT name 
FROM sys.key_constraints 
WHERE [type] = 'PK' 
    AND [parent_object_id] = Object_id('dbo.branch'); 

主キーを削除します。このクエリは、branchテーブルから主キーを削除します。

クエリ

ALTER TABLE dbo.branch 
DROP CONSTRAINT PK_Branch 
+0

で行うことができます。これは**他のテーブル**が 'dbo.branch'を参照していない限り動作します。外部キーを使用してテーブルを参照している場合は、まず参照するすべての外部キーを削除し、プライマリキーを削除して再作成してから、外部キーを参照するすべての外部キーを再作成する必要があります。 –

+0

はい、あなたは正しいです! –

0

Management Studioを使用しても、Indexを削除して再作成する以外に方法はありません。

Management Studioから、テーブルを右クリックして[デザイン]を選択し、[インターフェイス]を表示します。いくつかの変更を加えた後、変更を保存する前に、テーブルデザインを右クリックし、 "変更スクリプトの生成..."を選択すると、Management Studioが "舞台裏で"何をするかがわかります。 実際にはテーブルを削除し、新しい変更でテーブルを再作成し、データをテーブルに追加し直します。

関連する問題