No Microsoft SQL Server, conheço a consulta para verificar se existe uma restrição padrão para uma coluna e soltar uma restrição padrão:
IF EXISTS(SELECT * FROM sysconstraints
WHERE id=OBJECT_ID('SomeTable')
AND COL_NAME(id,colid)='ColName'
AND OBJECTPROPERTY(constid, 'IsDefaultCnst')=1)
ALTER TABLE SomeTable DROP CONSTRAINT DF_SomeTable_ColName
Mas devido a erros de digitação nas versões anteriores do banco de dados, o nome da restrição pode ser DF_SomeTable_ColName
ou DF_SmoeTable_ColName
.
Como posso excluir a restrição padrão sem erros de SQL? Os nomes de restrição padrão não aparecem na tabela INFORMATION_SCHEMA, o que torna as coisas um pouco mais complicadas.
Portanto, algo como 'exclua a restrição padrão nesta tabela / coluna' ou 'exclua DF_SmoeTable_ColName
', mas não cometa erros se não conseguir encontrá-la.
sql
sql-server
tsql
robô
fonte
fonte
Respostas:
Expandindo o código de Mitch Wheat, o script a seguir irá gerar o comando para eliminar a restrição e executá-la dinamicamente.
fonte
A postagem no blog de Rob Farley pode ser útil:
Algo como:
fonte
Descobri que isso funciona e não usa junções:
Apenas certifique-se de que columnName não tenha colchetes porque a consulta está procurando uma correspondência exata e não retornará nada se for [columnName].
fonte
IF @ObjectName IS NOT NULL
antes do comando EXEC[default_object_id])
é 0 . Eu recebo um valor NULL .Para eliminar a restrição para várias colunas:
fonte
Solução expandida (leva em consideração o esquema da tabela):
fonte
Elimine todas as restrições padrão em um banco de dados - seguro para o limite nvarchar (max).
fonte
Execute este comando para procurar todas as restrições:
Ele será parecido com este:
DF__Mytable__Column__[ABC123]
. Então você pode simplesmente eliminar a restrição.fonte
exec sp_helpconstraint 'Roles2016.UsersCRM'
Espero que isso possa ser útil para quem tem um problema semelhante. Na
ObjectExplorer
janela, selecione seu banco de dados => Tabelas, => sua tabela => Restrições. Se o cliente estiver definido no tempo de criação da coluna, você poderá ver o nome padrão da restrição, incluindo o nome da coluna. então use:(o nome da restrição é apenas um exemplo)
fonte
A solução a seguir eliminará a restrição padrão específica de uma coluna da tabela
fonte
Como algumas colunas tinham várias restrições padrão criadas, criei o seguinte procedimento armazenado:
fonte
Útil para algumas colunas que criaram várias
default constraints or check constraints
:Script https://stackoverflow.com/a/16359095/206730 modificado
fonte
Sempre gere script e revise antes de executar. Abaixo do script
fonte
fonte
Dê uma olhada.
fonte