Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Posso adicionar uma coluna não nula sem valor DEFAULT


Não, você não pode.

Porque se você pudesse, o SQL não saberia o que colocar como valor nos registros já existentes. Se você não tivesse nenhum registro na tabela, funcionaria sem problemas.

A maneira mais simples de fazer isso é criar a coluna com um padrão e remover o padrão.
ALTER TABLE dbo.MyTable ADD
MyColumn text NOT NULL CONSTRAINT DF_MyTable_MyColumn DEFAULT 'defaultValue'
ALTER TABLE dbo.MyTable
DROP CONSTRAINT DF_MyTable_MyColumn

Outra alternativa seria adicionar a coluna sem a restrição, preencher os valores para todas as células e adicionar a restrição.