SQL Server Management Studioで複合キーを作成するにはどうすればよいですか?


163

SQL Server Management Studioで複合キーを作成するにはどうすればよいですか?

2つのINT列でテーブルのID(一意)を形成したい

回答:


356

ここに画像の説明を入力してください

  1. 設計テーブルタブを開きます
  2. 2つのINTフィールドを強調表示します(Ctrl / Shift +最初の列の灰色のブロックをクリック)
  3. 右クリック->主キーの設定

4
複数のフィールドを強調表示するには、「列名」や「データ型」などの列の前にあるブロックをクリックします。列名フィールドをCtrl / Shift +クリックしても、実際には何も起こりません。
Pimgd 2013年

3
では、一方が文字列でもう一方がintの場合、それは不可能ですか?ないようです...
B.クレイシャノン

3
私はこれに反対票を投じますが、OPがSSMSでそれを行う方法を具体的に要求することに気づきました。常にデータベースの変更をスクリプト化する必要があります+このようなツールを使用する場合、自分で変更を行う方法を学ぶことは決してありません
JonnyRaa

2
@JonnyLeedsそれはあなたの非常に高い馬です。それが人々が好むものである場合、GUIの何が問題になっていますか?
leinad13

4
@ leinad13悪い一日だったに違いない!しかし、主要な問題はそれらが再現可能ではないことであり、それは一般に人々が制御されていない特別な変更を加え、データベース/スキーマの問題を修正するために微調整していることを意味します。それは非常に悪い兆候です-それらは文書化されていません(たとえば、修正するコードを書き留めてバージョン管理にチェックインしたり、データベースのバージョンが何であっても適切な変更を自動的に適用するツールを使用したりすることによって)、複数ある場合インストールすると、データベースに同じスキーマがなくなるとすぐに深刻な問題が発生します
JonnyRaa '27 / 07/27

63

これを行うためのコードを次に示します。

-- Sample Table
create table myTable 
(
    Column1 int not null,
    Column2 int not null
)
GO

-- Add Constraint
ALTER TABLE myTable
    ADD CONSTRAINT pk_myConstraint PRIMARY KEY (Column1,Column2)
GO

テーブルが既に作成されていると想定しているので、別のステートメントとして制約を追加しました。


SSMSのクエリウィンドウ内で実行できるため、この答えは当てはまると思います...;)
dance2die

2
スクリプトFTW、および明示的な名前付け 外部定義ADD PRIMARY KEYと内部PRIMARY KEY定義は、キーにランダムな名前を付けます。これにより、dbダイアグラム+テーブルがない場合に属している図を理解するのが難しくなります。
Daevin


14

デザインモード(テーブルを右クリックして[変更]を選択)で、両方の列を右クリックして強調表示し、主キーの設定を選択します。


7

SQL Server Management Studioでテーブルデザイナーを開きます(テーブルを右クリックして[デザイン]を選択します)

Ctrlキーを押したまま、テーブルの左側の余白にある2つ以上の列を強調表示します。

上部の標準メニューバーの小さな「キー」を押します

完了しました。

:-)


5

テーブルデザインビューで両方の行を強調表示し、キーアイコンをクリックすると、これらの行が複合主キーになります。

質問はよくわかりませんが、IDENTITY列にできるのはテーブルごとに1列だけで、両方ではありません。


4
create table myTable 
(
    Column1 int not null,
    Column2 int not null
)
GO


ALTER TABLE myTable
    ADD  PRIMARY KEY (Column1,Column2)
GO
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.