Une requête pour retrouver les colonnes auto incrémentées de la base et leur valeur actuelle

Voici une requête Transact SQL (MS SQL Server) pour retrouver toutes les colonnes auto incrémentées d’une base et leur valeur actuelle d’incrément.


WITH  
T1 AS
(
SELECT SCHEMA_NAME(schema_id) AS TABLE_SCHEMA,  
       OBJECT_NAME(c.object_id) AS TABLE_NAME,
       SCHEMA_NAME(schema_id) +'.' + OBJECT_NAME(c.object_id) AS TBL,
       c.name AS COLUMN_NAME
FROM   sys.columns AS c
       INNER JOIN sys.objects AS o
             ON c.object_id = o.object_id
WHERE  COLUMNPROPERTY(c.object_id, c.name, 'IsIdentity') = 1
),
T2 AS
(
SELECT *, IDENT_CURRENT(TBL) AS CUR_ID
FROM   T1
WHERE  TABLE_SCHEMA NOT IN ('sys', 'INFORMATION_SCHEMA')  
)
SELECT *
FROM   T2


Frédéric BROUARD, Spécialiste modélisation, bases de données, optimisation, langage SQL.
Le site sur le langage SQL et les S.G.B.D. relationnels : http://sqlpro.developpez.com/
Expert SQL Server http://www.sqlspot.com : audit, optimisation, tuning, formation
* * * * * Enseignant au CNAM PACA et à l’ISEN à Toulon * * * * *

Laisser un commentaire