sql-server - permitir - substituir null por 0 sql




Alterando uma coluna: nulo para não nulo (8)

Contanto que a coluna não seja um identificador exclusivo

UPDATE table set columnName = 0 where columnName is null

Então

Altere a tabela e defina o campo como não nulo e especifique um valor padrão de 0

Eu tenho uma tabela que tem várias colunas inteiras anuláveis. Isso é indesejável por várias razões, portanto, estou procurando atualizar todos os nulos para 0 e, em seguida, defina essas colunas como NOT NULL . Além de alterar os nulos para 0 , os dados devem ser preservados.

Eu estou procurando a sintaxe SQL específica para alterar uma coluna (chamá-lo ColumnA ) para " not null ". Suponha que os dados foram atualizados para não conter valores nulos.

Usando o SQL Server 2000 .


Eu tive o mesmo problema, mas o campo usado para o padrão para null, e agora eu quero o padrão para 0. Isso exigiu a adição de mais uma linha após a solução do mdb:

ALTER TABLE [Table] ADD CONSTRAINT [Constraint] DEFAULT 0 FOR [Column];

No meu caso, tive dificuldades com as respostas postadas. Acabei usando o seguinte:

ALTER TABLE table_name CHANGE COLUMN column_name column_name VARCHAR(200) NOT NULL DEFAULT '';

Altere VARCHAR(200) para o seu tipo de dados e, opcionalmente, altere o valor padrão.

Se você não tiver um valor padrão, terá um problema ao fazer essa alteração, pois o padrão seria null criando um conflito.


Para o Oracle 11g, consegui alterar o atributo da coluna da seguinte forma:

ALTER TABLE tablename MODIFY columnname datatype NOT NULL;

Caso contrário, a resposta de abatichev parecia boa. Você não pode repetir a alteração - reclama (pelo menos no SQL Developer) que a coluna já não é nula.


Primeiro, faça todos os valores NULL atuais desaparecerem:

UPDATE [Table] SET [Column]=0 WHERE [Column] IS NULL

Em seguida, atualize a definição da tabela para não permitir NULLs:

ALTER TABLE [Table] ALTER COLUMN [Column] INTEGER NOT NULL

Tornar a coluna não nula e adicionar padrão também pode ser feito na GUI do SSMS.

  1. Como outros já afirmaram, você não pode definir "não nulo" até que todos os dados existentes sejam "não nulos" da seguinte forma:

UPDATE myTable SET myColumn = 0

  1. Uma vez feito isso, com a tabela na visualização do projeto (clique com o botão direito do mouse na tabela e clique em "visualização do projeto"), você pode apenas desmarcar as colunas Permitir Nulos da seguinte forma:

  1. Ainda na visualização de design com a coluna selecionada, você pode ver as propriedades da coluna na janela abaixo e definir o padrão como 0 lá também, assim:


Você terá que fazer isso em duas etapas:

  1. Atualize a tabela para que não haja nulos na coluna.
UPDATE MyTable SET MyNullableColumn = 0
WHERE MyNullableColumn IS NULL
  1. Altere a tabela para alterar a propriedade da coluna
ALTER TABLE MyTable
ALTER COLUMN MyNullableColumn MyNullableColumnDatatype NOT NULL

isso funcionou para mim:

ALTER TABLE [Table] 
Alter COLUMN [Column] VARCHAR(50) not null;




alter-column