Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come aggiungere una colonna calcolata nella tabella di SQL Server - Tutorial SQL Server / T-SQL Parte 47

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