Dans SQL Server, vous pouvez utiliser le T-SQL IDENT_SEED()
fonction pour renvoyer la graine d'origine d'une colonne d'identité. Il s'agit de la valeur initiale spécifiée lors de la création de la colonne d'identité.
Syntaxe
La syntaxe ressemble à ceci :
IDENT_SEED ( 'table_or_view' )
La table_or_view argument est une expression qui spécifie la table ou la vue pour vérifier une valeur de départ d'identité.
Exemple 1 - Utilisation de base
Voici un exemple de code de base.
SELECT IDENT_SEED('Pets') AS Result;
Résultat :
+----------+ | Result | |----------| | 1 | +----------+
Dans ce cas, la valeur de départ de l'identité est 1.
Voici une autre requête qui vérifie plus de tables.
SELECT IDENT_SEED('Pets') AS Pets, IDENT_SEED('BestFriends') AS BestFriends, IDENT_SEED('Cities') AS Cities;
Résultat :
+--------+---------------+----------+ | Pets | BestFriends | Cities | |--------+---------------+----------| | 1 | 101 | 150 | +--------+---------------+----------+
Chacune de ces tables a été créée avec une valeur d'identité de départ différente.
Exemple 2 - Inclure le schéma
Vous pouvez également inclure le schéma dans l'argument.
SELECT IDENT_SEED('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_SEED(TABLE_SCHEMA + '.' + TABLE_NAME) AS IDENT_SEED FROM INFORMATION_SCHEMA.TABLES WHERE IDENT_SEED(TABLE_SCHEMA + '.' + TABLE_NAME) IS NOT NULL;
Résultat :
+----------------+----------------+--------------+ | TABLE_SCHEMA | TABLE_NAME | IDENT_SEED | |----------------+----------------+--------------| | dbo | ConstraintTest | 1 | | dbo | Event | 1 | | dbo | Scoreboard | 1 | | dbo | Pets | 1 | | dbo | BestFriends | 101 | | dbo | Cities | 150 | | dbo | Colors | 1 | +----------------+----------------+--------------+
À propos de la valeur de retour
La valeur de retour pour IDENT_SEED()
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.