In SQL Server puoi utilizzare IDENTITY()
funzione per inserire una colonna di identità in una nuova tabella.
Tuttavia, questa funzione non deve essere confusa con IDENTITY()
proprietà , che viene utilizzato con CREATE TABLE
e ALTER TABLE
dichiarazioni.
Il IDENTITY()
funzione viene utilizzato solo in un SELECT
istruzione con un INTO
clausola tabellare. Quindi puoi usarlo quando trasferisci i dati da una tabella all'altra, ad esempio.
Sintassi
La sintassi è questa:
IDENTITY (data_type [ , seed , increment ] ) AS column_name
Il tipo_dati argomento specifica il tipo di dati della colonna identity. I tipi di dati validi sono tutti i tipi di dati della categoria dei tipi di dati interi, ad eccezione di bit e decimale .
Il seme è il valore utilizzato per la prima riga caricata nella tabella.
L'incremento è il valore incrementale che viene aggiunto al valore di identità della riga precedente che è stata caricata.
Il nome_colonna argomento fornisce il nome della colonna di identità che desideri creare.
Esempio 1 – Utilizzo di base
Ecco un esempio di codice di base.
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets;
Questo seleziona i dati da Animali domestici tabella e la inserisce in una nuova tabella denominata BestFriends . La prima colonna è una colonna di identità che creo con IDENTITY()
funzione. In questo caso ho impostato il seme su 101 e l'incremento su 10. Chiamo quella colonna pet_id .
Chiamo la seconda colonna pet_name , e lo compilo dalla colonna denominata PetName .
Ecco cosa sono gli Animali domestici la tabella assomiglia a:
CREATE TABLE Pets ( PetId int IDENTITY(1,1) PRIMARY KEY, PetName varchar(255) ); INSERT INTO Pets (PetName) VALUES ('Homer'), ('Felix'), ('Ruff'); SELECT * FROM Pet;
Risultato:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
Ed ecco cosa sono i BestFriends la tabella appare dopo il trasferimento dei dati:
SELECT * FROM BestFriends;
Risultato:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
Quindi i nomi degli animali domestici rimangono gli stessi, ma la colonna dell'identità contiene valori diversi (perché ho usato IDENTITY(int, 101, 10)
, rispetto a IDENTITY(1,1)
per gli Animali domestici tabella).