2010-08-14 74 views
2

我想查询一个SQL Server & Oracle数据库以获取表数据,以指示列是否自动增量或不增量。我会假设你会看看“information_schema.columns”和“user_tab_cols”表,但它似乎并不包含这些信息。有没有人知道我可以检索这些信息?在SQL Server查询SQL Server/Oracle数据库表数据 - 标识列

+0

Oracle没有标识列 - 它使用称为序列的对象,并且它们不附加到列。 – 2010-08-14 23:50:28

回答

2

要检查在SQL Server特定列:

select t.name as tableName, c.name as columnName, c.is_identity 
    from sys.columns c 
     inner join sys.tables t 
      on c.object_id = t.object_id 
    where t.name = 'YourTable' 
     and c.name = 'YourColumn' 

或查找所有标识列

select t.name as tableName, c.name as columnName, c.is_identity 
    from sys.columns c 
     inner join sys.tables t 
      on c.object_id = t.object_id 
    where c.is_identity = 1 
1

的一种方式,这将返回所有具有身份

select OBJECT_NAME(id) as Tablename, name as ColumnName,* 
    from syscolumns 
    where COLUMNPROPERTY(id, name, 'IsIdentity') = 1 

列或使用INFORMATION_SCHEMA

select TABLE_SCHEMA + '.' + TABLE_NAME,COLUMN_NAME 
from INFORMATION_SCHEMA.columns 
where COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), 
    COLUMN_NAME, 'IsIdentity') = 1