Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment modifier une colonne de Null à Not Null dans la table SQL Server - Tutoriel SQL Server / T-SQL Partie 52

Scénario :

Vous travaillez en tant que développeur SQL Server avec une banque. Ils ont une table Dbo.Customer dans la base de données TechBrothersIT avec la définition ci-dessous.

Créer une table dbo.Customer(FirstName VARCHAR(50) Not Null,LastName VARCHAR(50),Age SmallInt,PhoneNumber CHAR( 9), date de naissance, sexe CHAR(1))
 Comme vous l'avez remarqué, LastName peut être Null. C'est le problème. La société a remarqué cela plus tard et souhaite toujours avoir la valeur pour LastName. Vous êtes invité à effectuer une analyse et à écrire un script Alter pour modifier la colonne de Null à Not Null. Quelles sont les choses que vous considérerez ou les suggestions que vous ferez ?

Solution :

La toute première chose à considérer dans ce scénario est de savoir si des valeurs sont déjà insérées dans la table pour Last Name as Null. Si tel est le cas, vous ne pouvez pas vraiment aller de l'avant et modifier la colonne de Null à Not Null. Si vous essayez, vous obtiendrez l'erreur ci-dessous.
Msg 515, Niveau 16, État 2, Ligne 14Impossible d'insérer la valeur NULL dans la colonne 'LastName', table 'TechBrothersIT.dbo.Customer' ; la colonne n'autorise pas les valeurs nulles. UPDATE échoue.
Cela signifie que nous devons d'abord traiter les valeurs Null dans cette colonne. Vous pouvez parler avec les entreprises et leur demander ce qu'ils aimeraient faire pour tous les clients dont le nom de famille est nul. Vous pouvez trouver la liste des clients où le nom de famille est nul en utilisant la requête ci-dessous.
Sélectionnez * De dbo.Clientoù le nom de famille est nul
 L'entreprise peut fournir différentes suggestions telles queMettez à jour le nom de famille sur Inconnu où il est NullOu Mettez à jour le nom de famille en blanc ('') s'il est NullOu Mettez à jour la colonne Nom de famille sur LNNP (Nom de famille non fourni)Ou ils retournent aux clients et obtenir leur nom de famille à mettre à jour 
En fonction des suggestions, continuez et mettez à jour les valeurs dans la colonne Nom de famille. Supposons que nous ayons décidé de mettre à jour en blanc '', nous pouvons utiliser la requête ci-dessous pour mettre à jour
update dbo.Customerset LastName=''où LastName est Null
 
 Vous êtes maintenant prêt à changer la colonne du tableau de Null à Not Null. 
Alter Table dbo.CustomerAlter Column LastName VARCHAR(50) Non Null