sql >> Database >  >> RDS >> Sqlserver

Kolom wijzigen van Null naar Niet Null in SQL Server-tabel - SQL Server / T-SQL-zelfstudie, deel 52

Scenario:

Je werkt als SQL Server ontwikkelaar bij een Bank. Ze hebben een Dbo.Customer-tabel in de TechBrothersIT-database met onderstaande definitie.

Create Table dbo.Customer
(FirstName VARCHAR(50) Not Null,
LastName VARCHAR(50),
Age SmallInt,
PhoneNumber CHAR(9),
DOB Date,
Gender CHAR(1)
)
 Zoals je hebt gemerkt, kan LastName Null zijn. Dat is het probleem. Bedrijf merkte dat later en wil altijd de waarde voor LastName hebben. U wordt gevraagd een analyse uit te voeren en een Alter-script te schrijven om Kolom te wijzigen van Null naar Niet Null. Welke dingen zult u overwegen of suggesties die u zult geven?

Oplossing:

Het allereerste dat u in dit scenario moet overwegen, is na te gaan of er al waarden zijn ingevoegd in de tabel voor Achternaam als Null. Als dat het geval is, kun je niet echt doorgaan en de kolom wijzigen van Null naar Niet Null. Als u het probeert, krijgt u onderstaande foutmelding.
Msg 515, Level 16, State 2, Line 14Cannot insert the value NULL into column 'LastName', table 'TechBrothersIT.dbo.Customer'; kolom staat geen nulls toe. UPDATE mislukt.
Het betekent dat we eerst met Null-waarden in deze kolom te maken hebben. U kunt met het bedrijfsleven praten en hen vragen wat ze zouden willen doen voor alle klanten waarbij Achternaam Null is. U kunt de lijst met klanten vinden waarbij Achternaam Null is door onderstaande zoekopdracht te gebruiken.
Select * From dbo.Customer
where LastName Is null
 Bedrijven kunnen verschillende suggesties doen, zoals laten we de achternaam bijwerken naar Unknow waar deze is NullOf de achternaam bijwerken naar blanco('') als deze Null is, of de kolom Achternaam bijwerken naar LNNP (Last Name Not Provided) Of ze gaan terug naar klanten en hun achternaam laten bijwerken 
Afhankelijk van de suggesties, ga je gang en werk de waarden in de kolom Achternaam bij. Laten we zeggen dat we besloten hebben om bij te werken naar blanco '', we kunnen onderstaande query gebruiken om
update dbo.Customer
set LastName=''
where LastName is Null
 
 Nu bent u helemaal klaar om de kolom in tabel van Null in Niet Null te veranderen. 
Alter Table dbo.Customer
Alter Column LastName VARCHAR(50) Not Null




  1. Hoe gebruik je variabelen in een eenvoudig PostgreSQL-script?

  2. Lijst met gegevenstypen in SQL Server 2017

  3. LEFT() vs SET TEXTSIZE in SQL Server:wat is het verschil?

  4. PGLogical 1.1-pakketten voor PostgreSQL 9.6beta1