Dans SQL Server, vous pouvez utiliser le T-SQL IDENT_INCR()
fonction pour renvoyer la valeur d'incrément d'une colonne d'identité. Il s'agit de la valeur d'incrément spécifiée lors de la création de la colonne d'identité.
Syntaxe
La syntaxe ressemble à ceci :
IDENT_INCR ( 'table_or_view' )
La table_or_view l'argument est une expression qui spécifie la table ou la vue pour vérifier une valeur d'incrément d'identité valide.
Exemple 1 - Utilisation de base
Voici un exemple de code de base.
SELECT IDENT_INCR('Pets') AS Result;
Résultat :
+----------+ | Result | |----------| | 1 | +----------+
Dans ce cas, la valeur d'incrément d'identité est 1.
Voici une autre requête qui vérifie plus de tables.
SELECT IDENT_INCR('Pets') AS Pets, IDENT_INCR('BestFriends') AS BestFriends, IDENT_INCR('Cities') AS Cities;
Résultat :
+--------+---------------+----------+ | Pets | BestFriends | Cities | |--------+---------------+----------| | 1 | 10 | 10 | +--------+---------------+----------+
Exemple 2 - Inclure le schéma
Vous pouvez également inclure le schéma dans l'argument.
SELECT IDENT_INCR('dbo.Pets') AS Result;
Résultat :
+----------+ | Result | |----------| | 1 | +----------+
Exemple 3 - Vérifier toutes les tables de la base de données
Voici un exemple de vérification de toutes les tables de la base de données pour leur valeur de départ d'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;
Résultat :
+----------------+----------------+--------------+ | 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 | +----------------+----------------+--------------+
À propos de la valeur de retour
La valeur de retour pour IDENT_INCR()
est numeric(@@MAXPRECISION,0))
. Cela signifie qu'il s'agit d'un type de données numérique avec une précision et une échelle fixes.
La précision dépend du serveur. Le @@MAXPRECISION
L'argument renvoie le niveau utilisé par les types de données décimaux et numériques tels qu'ils sont actuellement définis sur le serveur. La précision spécifie le nombre total maximum de chiffres décimaux (cela inclut ceux situés à gauche et à droite du point décimal).
Le deuxième argument spécifie une échelle de 0
, ce qui signifie qu'il n'y a pas de chiffres décimaux à droite de la décimale.
Vous pouvez exécuter la requête suivante pour trouver le niveau de précision actuellement défini sur votre serveur :
SELECT @@MAX_PRECISION AS [Max Precision];
Voici le résultat sur mon système :
+-----------------+ | Max Precision | |-----------------| | 38 | +-----------------+
Création d'une colonne d'identité
Vous pouvez créer une colonne d'identité en utilisant le IDENTITY()
propriété dans votre CREATE TABLE
ou ALTER TABLE
déclaration.
Une autre façon de créer une colonne d'identité est le IDENTITY()
une fonction. Cela vous permet de créer une colonne d'identité lors de l'utilisation d'un SELECT INTO
déclaration pour transférer des données d'une source à une autre.