Scenario:
Lavori come sviluppatore SQL Server per uno degli studi legali. Hai creato una tabella dbo.Customer utilizzando la definizione sotto ,Numero di telefono CHAR(9) ,DATA DOB ,Sesso CHAR(1) )È necessario disporre di un nome completo che dovrebbe essere composto da nome e cognome. Non vuoi salvare i dati duplicati nella tabella aggiungendo una nuova colonna per Nome completo. Quali sono le tue opzioni?
A seconda dell'età, vorremmo aggiungere una nuova colonna chiama IsSenior e contrassegnarla 1 se superiore a 65 altrimenti 0.
Soluzione:
SQL Server ci fornisce la colonna calcolata, che è una colonna virtuale e non archivia i dati a meno che non sia contrassegnata come persistente. Ciò significa che possiamo creare una colonna calcolata (nome completo) che utilizzerà i dati di nome e cognome. Creando la colonna calcolata non è necessario salvare i dati duplicati per la colonna Nome completo.Andiamo avanti e creiamo il nome completo delle colonne calcolate e IsSenior in base ai nostri criteri.
CREA TABELLA Cliente ( CustomerId INT Identity(1, 1) ,FirstName VARCHAR(50) ,LastName VARCHAR(50) ,Età SMALLINT ,PhoneNumber CHAR(9) ,DOB DATE ,Sesso CHAR(1) ,FullName AS FirstName + ' ' + Cognome ,Senior COME CASO QUANDO Età> 65 ALLORA 1 ALTRO 0 FINE )Abbiamo concatenato il nome e il cognome per il nome completo e abbiamo scritto la dichiarazione del caso per la colonna del computer IsSenior. Procediamo e inseriamo un paio di record.
insert in dbo.Customer(FirstName, LastName,Età) Values('Aamir','Shahzad',66), ('Raza', 'M',44)
Ho notato che non ho inserito nulla per FullName e IsSenior Columns. I valori per queste colonne verranno calcolati quando selezioneremo i dati.
Come aggiungere colonne calcolate nella tabella di SQL Server - Tutorial T-SQL
Se devi aggiungere la colonna calcolata alla tabella in uscita puoi usare la sintassi di seguito
Alter Table SchemaName.TableName
Aggiungi ColumnName AS Logic( come FistName +''+LastName)
Diciamo se vogliamo aggiungi FullName Computer Column alla tabella Customer, possiamo usare lo script sottostante.
Alter table dbo.Customer Aggiungi FullName AS FirstName+' '+LastName
Elimina colonna calcolata dalla tabella di SQL Server:
La sintassi per eliminare la colonna calcolata o normale è la stessa.
Alter Table SchemaName.TableName
drop Column ColumnName
Diciamo se vogliamo eliminare Colonna calcolata FullName dalla tabella dbo.Customer. Possiamo usare lo script seguente.
Alter table dbo.Customer drop column FullName