SQL Server 2005 Como Criar uma Restrição Exclusiva?
-
09-06-2019 - |
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.
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
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