Scénario :
Vous travaillez en tant que développeur SQL Server pour l'un des cabinets d'avocats. Vous avez créé une table dbo.Customer en utilisant la définition ci-dessousCREATE TABLE Customer ( CustomerId INT Identity(1, 1) ,FirstName VARCHAR(50) ,LastName VARCHAR(50) ,Age SMALLINT ,Numéro de téléphone CHAR(9) ,DOB DATE ,Sexe CHAR(1) )
Vous devez avoir un nom complet composé du prénom et du nom de famille. Vous ne souhaitez pas enregistrer les données en double dans la table en ajoutant une nouvelle colonne pour le nom complet. Quelles sont vos options ?
Également en fonction de l'âge, nous aimerions ajouter une nouvelle colonne, appelez IsSenior et marquez-la 1 si au-dessus de 65, sinon 0.
Solution :
SQL Server nous fournit une colonne calculée, c'est-à-dire une colonne virtuelle et elle ne stocke pas de données à moins qu'elle ne soit marquée comme persistante. Cela signifie que nous pouvons créer une colonne calculée (nom complet) qui utilisera les données du prénom et du nom de famille. En créant une colonne calculée, nous n'avons pas à enregistrer les données en double pour la colonne Nom complet.Continuons et créons les colonnes calculées Nom complet et IsSenior en fonction de nos critères.
CREATE TABLE Customer ( CustomerId INT Identity(1, 1) ,FirstName VARCHAR(50) ,LastName VARCHAR(50) ,Age SMALLINT ,PhoneNumber CHAR(9) ,DOB DATE ,Sexe CHAR(1) ,FullName AS FirstName + ' ' + Nom ,IsSenior AS CASE WHEN Age> 65 THEN 1 ELSE 0 END )
Nous avons concaténé le prénom et le nom de famille pour le nom complet et avons écrit la déclaration de cas pour la colonne IsSenior Computer. Continuons et insérons quelques enregistrements.insert into dbo.Customer(FirstName,LastName,Age) Values('Aamir','Shahzad',66), ('Raza', 'M',44)
J'ai remarqué que je n'ai rien inséré pour les colonnes FullName et IsSenior. Les valeurs de ces colonnes seront calculées lorsque nous sélectionnerons les données.
Comment ajouter des colonnes calculées dans la table SQL Server - Tutoriel T-SQL
Si vous devez ajouter une colonne calculée à la sortie de la table, vous pouvez utiliser la syntaxe ci-dessous
Alter Table SchemaName.TableName
Ajouter ColumnName AS Logic( tel que FistName +''+LastName)
Disons si nous voulons ajoutez FullName Computer Column à la table Customer, nous pouvons utiliser le script ci-dessous.Alter table dbo.Customer Add FullName AS FirstName+' '+LastName
Supprimer la colonne calculée de la table SQL Server :
La syntaxe pour supprimer une colonne calculée ou normale est la même.
Alter Table SchemaName.TableName
drop Column ColumnName
Disons si nous voulons supprimer Colonne calculée FullName à partir de la table dbo.Customer. Nous pouvons utiliser le script ci-dessous.Alter table dbo.Customer drop column FullName