sql >> Databáze >  >> RDS >> Sqlserver

Jak změnit sloupec z hodnoty Null na hodnotu Not Null v tabulce SQL Server - SQL Server / Výukový program T-SQL, část 52

Scénář:

Pracujete jako vývojář SQL Serveru s bankou. Mají tabulku Dbo.Customer v databázi TechBrothersIT s níže uvedenou definicí.

Create Table dbo.Customer
(FirstName VARCHAR(50) Not Null,
LastName VARCHAR(50),
Age SmallInt,
PhoneNumber CHAR(9),
DOB Date,
Gender CHAR(1)
)
 Jak jste si všimli, Příjmení může být Null. To je ten problém. Společnost si toho všimla později a vždy chtěla mít hodnotu příjmení. Budete požádáni, abyste provedli analýzu a napsali skript Alter pro změnu sloupce z Null na Not Null. Jaké věci budete zvažovat nebo návrhy, které poskytnete?

Řešení:

Úplně první věcí, kterou je v tomto scénáři třeba zvážit, je zjistit, zda jsou v tabulce pro Příjmení jako Null již vloženy nějaké hodnoty. Pokud je tomu tak, nemůžete skutečně pokračovat a sloupec Alter z Null na Not Null. Pokud to zkusíte, zobrazí se chyba níže.
Msg 515, Level 16, State 2, Line 14Nelze vložit hodnotu NULL do sloupce 'LastName', tabulky 'TechBrothersIT.dbo.Customer'; sloupec nepovoluje hodnoty null. UPDATE se nezdaří.
To znamená, že se nejprve musíme vypořádat s hodnotami Null v tomto sloupci. Můžete si promluvit s obchodními partnery a zeptat se jich, co by chtěli udělat pro všechny zákazníky, kde je Last Name Null. Seznam zákazníků, kde je příjmení null, můžete najít pomocí níže uvedeného dotazu.
Select * From dbo.Customer
where LastName Is null
 Firma může poskytnout různé návrhy, jako je Aktualizujte Příjmení na Neznámé, kde je NullNebo Aktualizujte příjmení na prázdné (''), pokud je NullNebo Aktualizujte sloupec Příjmení na LNNP (Last Name Not Provided) Nebo se vrátí k zákazníkům a nechat aktualizovat jejich příjmení 
V závislosti na návrzích pokračujte a aktualizujte hodnoty ve sloupci Příjmení. Řekněme, že jsme se rozhodli aktualizovat na prázdné '', můžeme použít níže uvedený dotaz k aktualizaci
update dbo.Customer
set LastName=''
where LastName is Null
 
 Nyní jste připraveni změnit sloupec v tabulce z Null na Not Null. 
Alter Table dbo.Customer
Alter Column LastName VARCHAR(50) Not Null




  1. Jak vrátit zpět, když dojde k chybě při provádění příkazu sql loader?

  2. Sloučení datových souborů se Statistica, část 2

  3. Dynamické SQL výsledky do dočasné tabulky v SQL uložené proceduře

  4. Přehled logické replikace v PostgreSQL