bagaimana cara membuat kunci komposit dengan SQL Server Management Studio?

163

bagaimana cara membuat kunci komposit dengan SQL Server Management Studio?

Saya ingin dua kolom INT membentuk identitas (unik) untuk tabel

mrblah
sumber

Jawaban:

356

masukkan deskripsi gambar di sini

  1. Buka tab tabel desain
  2. Sorot dua bidang INT Anda (Ctrl / Shift + klik pada blok abu-abu di kolom pertama)
  3. Klik kanan -> Setel kunci utama
Cory
sumber
4
Untuk menyorot banyak bidang, klik blok di depan kolom "nama kolom" dan "tipe data" dan semacamnya. Ctrl / Shift + Mengklik bidang nama kolom tidak akan benar-benar melakukan apa pun.
Pimgd
3
Jadi jika satu adalah string dan yang lainnya adalah int, itu tidak mungkin? Tampaknya tidak menjadi ...
B. Clay Shannon
3
Saya akan downvote ini, tetapi kemudian saya menyadari OP secara khusus bertanya bagaimana melakukannya di SSMS. Anda harus selalu membuat skrip perubahan basis data + jika Anda menggunakan alat seperti ini, Anda tidak akan pernah belajar bagaimana melakukan perubahan untuk diri Anda sendiri
JonnyRaa
2
@JonnyLeeds itu kuda yang sangat tinggi di sana. Apa yang salah dengan GUI jika itu yang disukai orang?
leinad13
4
@ leinad13 Aku pasti mengalami hari yang buruk! Tetapi masalah utama adalah bahwa mereka tidak dapat diulang dan umumnya berarti bahwa orang membuat perubahan ad hoc dan tweak yang tidak terkontrol untuk memperbaiki masalah database / skema. Itu pertanda sangat buruk - mereka tidak berdokumen (misalnya dengan meminta kode untuk diperbaiki ditulis dan diperiksa ke dalam kontrol versi dan / atau memiliki alat yang secara otomatis menerapkan perubahan yang tepat untuk apa pun versi database) dan jika Anda memiliki lebih dari satu instalasi maka Anda dalam masalah serius segera setelah database tidak akan memiliki skema yang sama
JonnyRaa
63

berikut ini beberapa kode untuk melakukannya:

-- 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

Saya menambahkan kendala sebagai pernyataan terpisah karena saya menganggap meja Anda sudah dibuat.

Roatin Marth
sumber
Saya kira jawaban ini cocok karena Anda dapat menjalankan ini dalam jendela Query dari SSMS ...;)
dance2die
2
Scripting FTW, dan untuk penamaan eksplisit! Definisi eksternal ADD PRIMARY KEYdan internal PRIMARY KEYakan memberikan nama acak ke tombol, yang dapat membuatnya menjadi bajingo yang sulit diketahui di mana jika Anda tidak memiliki diagram + tabel db.
Daevin
35
create table my_table (
    id_part1 int not null,
    id_part2 int not null,
    primary key (id_part1, id_part2)
)
yfeldblum
sumber
14

Dalam mode desain (tabel klik kanan pilih modifikasi) sorot kedua kolom klik kanan dan pilih set primary key

Gratzy
sumber
7

Buka perancang tabel di SQL Server Management Studio (klik kanan tabel dan pilih 'Desain')

Menekan tombol Ctrl menyoroti dua atau lebih kolom di margin tabel sebelah kiri

Tekan tombol kecil di bilah menu standar di bagian atas

Kamu sudah selesai..

:-)

pengguna4878037
sumber
5

Sorot kedua baris dalam tampilan desain tabel dan klik pada ikon tombol, mereka sekarang akan menjadi kunci primer komposit.

Saya tidak yakin dengan pertanyaan Anda, tetapi hanya satu kolom per tabel yang dapat berupa kolom IDENTITAS, bukan keduanya.

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


ALTER TABLE myTable
    ADD  PRIMARY KEY (Column1,Column2)
GO
Tejas
sumber