- Compreendendo as limitações de dados em colunas NOT NULL
- Anulação de dados de coluna existentes
- Alterar a estrutura de dados da coluna
- Verificar nulidade alterada
Alterando a estrutura de dados de uma coluna no SQL Server de
NULL para NOT NULL , não permitindo valores não nulos nessa coluna, geralmente é executado usando o método ALTER TABLE relativamente simples sintaxe para alterar adequadamente a coluna em questão. Neste tutorial, examinaremos as importantes precauções de segurança necessárias ao alterar existentes dados em uma coluna, antes de realmente emitir qualquer
ALTER comandos que potencialmente causariam danos à própria tabela. Compreendendo as limitações de dados em colunas NOT NULL
Antes que qualquer alteração seja feita em sua tabela, é importante examinar brevemente quais dados podem (e não podem) ser especificados em uma coluna existente que você deseja alterar para
NOT NULL , garantindo que nenhuma linha tenha permissão para ter um NULL valor nessa coluna. Mais importante, todos os
NULL existentes valores dentro da coluna devem ser atualizado para um valor não nulo antes do ALTER comando pode ser usado com sucesso e a coluna feita NOT NULL . Qualquer tentativa de definir a coluna como NOT NULL enquanto real NULL os dados permanecerem na coluna resultarão em erro e nenhuma alteração ocorrerá. Anulando dados de colunas existentes
Para garantir que não haja
NULL valores em nossa coluna, usaremos um UPDATE básico comando, aplicável explicitamente a linhas onde o valor é atualmente NULL . Por exemplo, temos uma tabela básica de client dados com name , email e phone . Atualmente alguns dos registros têm um NULL phone valor, que não queremos permitir:clientsID name email phone
1 Neville Estes Quisque@diamProin.com 1-843-863-2697
2 Flynn Fry velit@senectus.net
3 Wyatt Schmidt nibh.dolor@sit.co.uk 1-950-895-1847
4 Oleg Hill lacinia.vitae.sodales@acrisusMorbi.edu 1-173-344-1578
5 Randall Bullock eu@lacus.net
6 Lamar White ut.sem@risus.com 1-421-757-4907
7 Fuller Hill Vivamus.nisi@tempor.ca 1-178-437-8281
8 Ulysses Boyle sem.mollis.dui@Integeraliquamadipiscing.net 1-535-515-1494
9 Paki Palmer nec@euismod.org
10 Kamal Buchanan sapien.gravida@tellusnonmagna.co.uk 1-325-847-4838
Portanto, podemos inserir um valor padrão para todos os
phone valores que são atualmente NULL com a seguinte afirmação:UPDATE
clients
SET
phone = '0-000-000-0000'
WHERE
phone IS NULL;
Agora nosso
NULL os valores foram todos substituídos pelo valor que consideramos o default , 0-000-000-0000 :clientsID name email phone
1 Neville Estes Quisque@diamProin.com 1-843-863-2697
2 Flynn Fry velit@senectus.net 0-000-000-0000
3 Wyatt Schmidt nibh.dolor@sit.co.uk 1-950-895-1847
4 Oleg Hill lacinia.vitae.sodales@acrisusMorbi.edu 1-173-344-1578
5 Randall Bullock eu@lacus.net 0-000-000-0000
6 Lamar White ut.sem@risus.com 1-421-757-4907
7 Fuller Hill Vivamus.nisi@tempor.ca 1-178-437-8281
8 Ulysses Boyle sem.mollis.dui@Integeraliquamadipiscing.net 1-535-515-1494
9 Paki Palmer nec@euismod.org 0-000-000-0000
10 Kamal Buchanan sapien.gravida@tellusnonmagna.co.uk 1-325-847-4838
Alterar a estrutura de dados da coluna
Agora que não há
NULL valores por mais tempo, podemos emitir nosso ALTER instrução para atualizar a coluna para que todas as adições futuras não permitam NULL valores. Como estamos alterando o phone coluna neste exemplo, a instrução será algo como isto:ALTER TABLE
clients
ALTER COLUMN
phone
NVARCHAR(20) NOT NULL;
Verificar nulidade alterada
Depois que a alteração em sua coluna for feita, é uma boa prática verificar se a coluna não permite mais nenhum
NULL valores executando um simples INSERT teste e tentando inserir um novo registro com o NULL valor na coluna alterada:INSERT INTO
clients(name, email, phone)
VALUES
('John Doe', 'jdoe@domain.com', NULL);
Se tudo ocorreu conforme o planejado, o SQL Server emitirá um erro informando que a coluna não permite
NULL valores:Cannot insert the value NULL into column 'phone', table 'library.dbo.clients'; column does not allow nulls. INSERT fails. [SQL State=23000, DB Errorcode=515]