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

mrblah
fonte

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
Cory
fonte
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.

Roatin Marth
fonte
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)
)
yfeldblum
fonte
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

Gratzy
fonte
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..

:-)

user4878037
fonte
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.

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


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