SQL Server Management Studio ile bileşik anahtar nasıl yapabilirim?


163

SQL Server Management Studio ile bileşik anahtar nasıl yapabilirim?

Bir tablo için kimlik (benzersiz) oluşturmak için iki INT sütun istiyorum

Yanıtlar:


356

resim açıklamasını buraya girin

  1. Tasarım tablosu sekmesini açma
  2. İki INT alanınızı vurgulayın (Ctrl / Shift + ilk sütundaki gri blokları tıklayın)
  3. Sağ tıklayın -> Birincil anahtarı ayarla

4
Birden çok alanı vurgulamak için, "sütun adı" ve "veri türü" sütunlarının önündeki blokları tıklayın. Ctrl / Shift + Sütun adı alanlarına tıklamak hiçbir şey yapmaz.
Pimgd

3
Yani biri dize diğeri int ise, bu mümkün değil mi? Görünüşe göre ...
B. Clay Shannon

3
Bunu küçümseyeceğim, ancak OP'nin SSMS'de nasıl yapılacağını sorduğunu fark ettim. Veritabanı değişikliklerini her zaman komut dosyası olarak
yazmalısınız

2
@JonnyLeeds orada çok yüksek bir at. İnsanların tercih ettiği şey GUI'de yanlış olan nedir?
leinad13

4
@ leinad13 Kötü bir gün geçiriyor olmalıyım! Ancak asıl sorun, tekrarlanabilir olmamaları ve genellikle insanların kontrolsüz geçici değişiklikler ve veritabanı / şema sorunlarını düzeltmek için ayarlamalar yaptığı anlamına gelir. Bu çok kötü bir işaret - belgelenmemiş (örneğin, düzeltilecek kodun sürüm kontrolüne girilmesi ve / veya veritabanı sürümü ne olursa olsun doğru değişiklikleri otomatik olarak uygulayan bir araca sahip olması) ve birden fazla varsa yükleme sonra veritabanları aynı şema olmaz kısa sürede ciddi sorun
yaşıyorsanız

63

İşte bunu yapmak için bazı kod:

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

Kısıtlamayı ayrı bir ifade olarak ekledim çünkü tablonuzun önceden oluşturulduğunu varsayıyorum.


Sanırım bu cevap SSMS Sorgu penceresinde çalıştırabilirsiniz çünkü uyuyor ...;)
dance2die

2
Komut dosyası FTW ve açık adlandırma için! Dış ADD PRIMARY KEYve iç PRIMARY KEYtanımlar, tuşlara rastgele adlar verecektir, bu da db diyagramı + tablolarınız yoksa nereye ait olduğunu anlamak için bir bajingoyu acıya sokabilir.
Daevin

35
create table my_table (
    id_part1 int not null,
    id_part2 int not null,
    primary key (id_part1, id_part2)
)

14

Tasarım modunda (sağ tıklama tablosu değiştir seçin) her iki sütunu da sağ tıklayın ve birincil anahtarı ayarla'yı seçin


7

SQL Server Management Studio'da tablo tasarımcısını açın (tabloya sağ tıklayın ve 'Tasarım'ı seçin)

Ctrl tuşunu basılı tutarak soldaki tablo kenar boşluğunda iki veya daha fazla sütunu vurgulayın

Üstteki standart menü çubuğunda küçük 'Tuş' tuşuna basın

Sen bittin..

:-)


5

Tablo tasarım görünümünde her iki satırı da vurgulayın ve anahtar simgesini tıklayın, bunlar artık bileşik birincil anahtar olacaktır.

Sorunuzdan emin değilim, ancak her tablo için yalnızca bir sütun KİMLİK sütunu olabilir, her ikisi de değil.


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


ALTER TABLE myTable
    ADD  PRIMARY KEY (Column1,Column2)
GO
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.