2010-08-14 92 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