tablas - obtener todas las columnas de una tabla sql
Cómo obtener una lista de todas las tablas que tienen columnas de identidad (5)
Me gustaría aprender a obtener una lista de todas las tablas que tienen columnas de identidad de una base de datos MS SQL.
El siguiente script hará:
SELECT a.name as TableName,
CASE WHEN b.name IS NULL
THEN ''No Identity Column''
ELSE b.name
END as IdentityColumnName
FROM sys.tables a
LEFT JOIN sys.identity_columns b on a.object_id = b.object_id
Me gusta este enfoque porque usa una combinación en lugar de WHERE EXISTS o una llamada a COLUMNPROPERTY. Tenga en cuenta que el grupo by solo es necesario si: a) tiene tablas con más de una columna IDENTIDAD yb) no quiere resultados duplicados:
SELECT
SchemaName = s.name,
TableName = t.name
FROM
sys.schemas AS s
INNER JOIN sys.tables AS t ON s.schema_id = t.schema_id
INNER JOIN sys.columns AS c ON t.object_id = c.object_id
INNER JOIN sys.identity_columns AS ic on c.object_id = ic.object_id AND c.column_id = ic.column_id
GROUP BY
s.name,
t.name
ORDER BY
s.name,
t.name;
Seleccione OBJECT_NAME (object_Id) Rrom sys.identity_columns donde is_identity = 1;
SELECT
[schema] = s.name,
[table] = t.name
FROM sys.schemas AS s
INNER JOIN sys.tables AS t
ON s.[schema_id] = t.[schema_id]
WHERE EXISTS
(
SELECT 1 FROM sys.identity_columns
WHERE [object_id] = t.[object_id]
);
select COLUMN_NAME, TABLE_NAME
from INFORMATION_SCHEMA.COLUMNS
where TABLE_SCHEMA = ''dbo''
and COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, ''IsIdentity'') = 1
order by TABLE_NAME