Pergunta

Como faço para criar uma restrição unique em uma tabela existente no SQL Server 2005?

Eu estou procurando o TSQL e como fazê-lo no Diagrama de Banco de dados.

Foi útil?

Solução

O comando SQL é:

ALTER TABLE <tablename> ADD CONSTRAINT
            <constraintname> UNIQUE NONCLUSTERED
    (
                <columnname>
    )

Ver a sintaxe completa aqui.

Se você quer fazê-lo a partir de um Diagrama de Banco de dados:

  • clique com o botão direito do mouse sobre a tabela e selecione "Indexes/Keys'
  • clique no botão Adicionar para adicionar um novo índice
  • introduza as informações necessárias nas Propriedades no lado direito:
    • as colunas que você deseja (clique no botão de reticências para selecionar)
    • conjunto É Único para Sim
    • dar-lhe um nome adequado

Outras dicas

No SQL Server Management Studio Express:

  • Clique com o botão direito clique em tabela, escolha Modificar ou Design(Para Versões Posteriores)
  • Clique com o botão direito do rato do campo, escolha Índices/Chaves...
  • Clique Adicionar
  • Para Colunas, selecione o nome do campo você quer ser único.
  • Para Tipo, escolher Chave Única.
  • Clique Fechar, Salvar a mesa.
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])

Aviso:Apenas uma linha nula pode ser na coluna que você definiu para ser exclusivo.

Você pode fazer isso com um índice filtrado no SQL 2008:

CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;

Ver Valor do campo deve ser exclusivo a menos que ele é NULO para uma variedade de respostas.

ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]

Eu também achei você pode fazer isso via, os diagramas de banco de dados.

Clicando com o botão direito a tabela e selecionando Índices/Chaves...

Clique no botão 'Adicionar', e altere as colunas para a coluna(s) que você deseja tornar único.

A mudança É Exclusivo para o Sim.

Clique em fechar e salvar o diagrama, e irá adicioná-lo para a mesa.

Você está procurando algo como o seguinte

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

MSDN Docs

Para criar uma restrição EXCLUSIVA em uma ou várias colunas quando a tabela já está criado, use o seguinte SQL:

ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

Para permitir a designação de uma ÚNICA restrição para consulta acima

ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

A consulta suportados pelo MySQL / SQL Server / Oracle / MS Access.

No management studio diagrama escolha a tabela, clique no botão direito para adicionar nova coluna, se desejar, clique com botão direito na coluna e escolha "Restrições de Verificação", lá você pode adicionar um.

Em algumas situações, pode ser desejável para assegurar a Única chave não existe antes de criá-lo.Em tais casos, o script abaixo podem ajudar:

IF Exists(SELECT * FROM sys.indexes WHERE name Like '<index_name>')
    ALTER TABLE dbo.<target_table_name> DROP CONSTRAINT <index_name> 
GO

ALTER TABLE dbo.<target_table_name> ADD CONSTRAINT <index_name> UNIQUE NONCLUSTERED (<col_1>, <col_2>, ..., <col_n>) 
GO
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top