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 * * * * *