Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So ändern Sie die Spalte von Null in Not Null in der SQL Server-Tabelle – SQL Server / T-SQL-Tutorial Teil 52

Szenario:

Sie arbeiten als SQL Server Entwickler bei einer Bank. Sie haben eine Dbo.Customer-Tabelle in der TechBrothersIT-Datenbank mit der folgenden Definition.

Create Table dbo.Customer
(FirstName VARCHAR(50) Not Null,
LastName VARCHAR(50),
Age SmallInt,
PhoneNumber CHAR(9),
DOB Date,
Gender CHAR(1)
)
 Wie Sie bemerkt haben, kann LastName Null sein. Das ist das Problem. Das Unternehmen hat das später bemerkt und möchte immer den Wert für LastName haben. Sie werden gebeten, eine Analyse durchzuführen und ein Alter-Skript zu schreiben, um die Spalte von Null auf Not Null zu ändern. Welche Dinge werden Sie berücksichtigen oder Vorschläge machen?

Lösung:

Das allererste, was Sie in diesem Szenario berücksichtigen sollten, ist herauszufinden, ob in der Tabelle für den Nachnamen bereits Werte als Null eingefügt wurden. Wenn das der Fall ist, können Sie nicht wirklich fortfahren und die Spalte von Null auf Not Null ändern. Wenn Sie versuchen, erhalten Sie folgende Fehlermeldung.
Msg 515, Ebene 16, Zustand 2, Zeile 14Der Wert NULL kann nicht in die Spalte „LastName“, Tabelle „TechBrothersIT.dbo.Customer“ eingefügt werden; Spalte erlaubt keine Nullen. UPDATE schlägt fehl.
Das bedeutet, dass wir uns zuerst mit Nullwerten in dieser Spalte befassen müssen. Sie können mit Unternehmen sprechen und sie fragen, was sie für alle Kunden tun möchten, bei denen der Nachname Null ist. Sie können die Liste der Kunden finden, bei denen der Nachname Null ist, indem Sie die folgende Abfrage verwenden.
Select * From dbo.Customer
where LastName Is null
 Das Unternehmen kann verschiedene Vorschläge machen, z. B. Aktualisieren Sie den Nachnamen auf Unbekannt, wo er Null ist, oder aktualisieren Sie den Nachnamen auf leer (''), wenn er Null ist, oder aktualisieren Sie die Spalte Nachname auf LNNP (Nachname nicht angegeben), oder sie gehen zurück zu den Kunden und erhalten ihren Nachnamen zum Aktualisieren 
Je nach den Vorschlägen, fahren Sie fort und aktualisieren Sie die Werte in der Spalte Nachname. Angenommen, wir haben uns entschieden, auf ein leeres '' zu aktualisieren. Wir können die folgende Abfrage verwenden, um
update dbo.Customer
set LastName=''
where LastName is Null
zu aktualisieren
 
 Jetzt können Sie die Spalte in der Tabelle von Null in Not Null ändern. 
Alter Table dbo.Customer
Alter Column LastName VARCHAR(50) Not Null