In SQL Server è possibile utilizzare il IDENT_INCR()
T-SQL funzione per restituire il valore di incremento di una colonna di identità. Questo è il valore di incremento specificato durante la creazione della colonna Identity.
Sintassi
La sintassi è questa:
IDENT_INCR ( 'table_or_view' )
La tabella_o_vista argomento è un'espressione che specifica la tabella o la vista per verificare la presenza di un valore di incremento dell'identità valido.
Esempio 1 – Utilizzo di base
Ecco un esempio di codice di base.
SELECT IDENT_INCR('Pets') AS Result;
Risultato:
+----------+ | Result | |----------| | 1 | +----------+
In questo caso, il valore di incremento dell'identità è 1.
Ecco un'altra query che controlla più tabelle.
SELECT IDENT_INCR('Pets') AS Pets, IDENT_INCR('BestFriends') AS BestFriends, IDENT_INCR('Cities') AS Cities;
Risultato:
+--------+---------------+----------+ | Pets | BestFriends | Cities | |--------+---------------+----------| | 1 | 10 | 10 | +--------+---------------+----------+
Esempio 2 – Incluso lo schema
Puoi anche includere lo schema nell'argomento.
SELECT IDENT_INCR('dbo.Pets') AS Result;
Risultato:
+----------+ | Result | |----------| | 1 | +----------+
Esempio 3:verifica di tutte le tabelle nel database
Ecco un esempio di controllo di tutte le tabelle nel database per il loro valore seed di identità.
SELECT TABLE_SCHEMA, TABLE_NAME, IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) AS IDENT_INCR FROM INFORMATION_SCHEMA.TABLES WHERE IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) IS NOT NULL;
Risultato:
+----------------+----------------+--------------+ | TABLE_SCHEMA | TABLE_NAME | IDENT_INCR | |----------------+----------------+--------------| | dbo | ConstraintTest | 1 | | dbo | Event | 1 | | dbo | Scoreboard | 1 | | dbo | Pets | 1 | | dbo | BestFriends | 10 | | dbo | Cities | 10 | | dbo | Colors | 1 | +----------------+----------------+--------------+
Informazioni sul valore di ritorno
Il valore restituito per IDENT_INCR()
è numeric(@@MAXPRECISION,0))
. Ciò significa che si tratta di un tipo di dati numerico con una precisione e una scala fisse.
La precisione dipende dal server. Il @@MAXPRECISION
argomento restituisce il livello utilizzato dai tipi di dati decimali e numerici come attualmente impostato nel server. La precisione specifica il numero totale massimo di cifre decimali (include quelle a sinistra ea destra del punto decimale).
Il secondo argomento specifica una scala di 0
, il che significa che non ci sono cifre decimali a destra della cifra decimale.
Puoi eseguire la seguente query per trovare il livello di precisione attualmente impostato sul tuo server:
SELECT @@MAX_PRECISION AS [Max Precision];
Ecco il risultato sul mio sistema:
+-----------------+ | Max Precision | |-----------------| | 38 | +-----------------+
Creazione di una colonna identità
Puoi creare una colonna di identità utilizzando IDENTITY()
proprietà nel tuo CREATE TABLE
o ALTER TABLE
dichiarazione.
Un altro modo per creare una colonna di identità è IDENTITY()
funzione. Ciò ti consente di creare una colonna identità quando utilizzi un SELECT INTO
dichiarazione per trasferire i dati da una fonte all'altra.