como faço para criar uma chave composta com o SQL Server Management Studio?


163

como faço para criar uma chave composta com o SQL Server Management Studio?

Eu quero duas colunas INT para formar a identidade (exclusiva) de uma tabela

Respostas:


356

insira a descrição da imagem aqui

  1. Abra a guia da tabela de design
  2. Destaque seus dois campos INT (Ctrl / Shift + clique nos blocos cinza na primeira coluna)
  3. Clique com o botão direito do mouse -> Definir chave primária

4
Para destacar vários campos, clique nos blocos na frente das colunas "nome da coluna" e "tipo de dados" e assim por diante. Ctrl / Shift + Clicar nos campos de nome da coluna não fará nada.
Pimgd

3
Então, se um é uma string e o outro é um int, não é possível? Não parece ser ...
B. Clay Shannon

3
Eu rebaixaria isso, mas então percebi que o OP pediu especificamente como fazê-lo no SSMS. Você deve sempre alterações de banco de dados de script + se você usar ferramentas como esta, você nunca vai aprender a fazer as mudanças para si mesmo
JonnyRaa

2
@JonnyLeeds é um cavalo muito alto lá. O que há de errado com a GUI, se é isso que as pessoas preferem?
precisa saber é o seguinte

4
@ leinad13 Eu devo ter tido um dia ruim! Mas o principal problema é que eles não são repetíveis e geralmente significa que as pessoas estão fazendo alterações e ajustes ad hoc não controlados para corrigir problemas de banco de dados / esquema. Esse é um sinal muito ruim - eles não estão documentados (por exemplo, tendo o código para corrigir anotado e verificado no controle de versão e / ou tendo uma ferramenta que aplica automaticamente as alterações corretas para qualquer que seja a versão do banco de dados) e se você tiver mais de um instalação, então você está em sérios apuros, logo os bancos de dados não terá o mesmo esquema
JonnyRaa

63

aqui está um código para fazer isso:

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

Eu adicionei a restrição como uma instrução separada porque presumo que sua tabela já foi criada.


Eu acho que esta resposta se encaixa, pois você pode executar isto dentro de Consulta janela de SSMS ...;)
dance2die

2
Script FTW e para nomeação explícita! As definições externas ADD PRIMARY KEYe internas PRIMARY KEYdarão nomes aleatórios às teclas, o que pode dificultar o entendimento do bajingo, que pertence a onde, se você não tiver o diagrama db + tabelas.
Dakota 25/08

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

14

No modo de design (clique com o botão direito na tabela, selecione modificar), realce as duas colunas, clique com o botão direito e escolha definir chave primária


7

Abra o designer da tabela no SQL Server Management Studio (clique com o botão direito do mouse na tabela e selecione 'Design')

Mantendo pressionada a tecla Ctrl, destaque duas ou mais colunas na margem esquerda da tabela

Pressione a pequena 'Chave' na barra de menus padrão na parte superior

Você Terminou..

:-)


5

Destaque as duas linhas na visualização de design da tabela e clique no ícone de chave; elas agora serão uma chave primária composta.

Não tenho certeza da sua pergunta, mas apenas uma coluna por tabela pode ser uma coluna de IDENTIDADE, não ambas.


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


ALTER TABLE myTable
    ADD  PRIMARY KEY (Column1,Column2)
GO
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.