回答
這是查詢哪個返回標識列名;
create procedure GetIdentity
@tablename varchar(50)
begin
SELECT OBJECT_NAME(OBJECT_ID) AS TABLENAME,
NAME AS COLUMNNAME,
SEED_VALUE,
INCREMENT_VALUE,
LAST_VALUE,
IS_NOT_FOR_REPLICATION
FROM SYS.IDENTITY_COLUMNS
WHERE OBJECT_NAME(OBJECT_ID) = @tablename
end
然後形成代碼端。
使用datareader角色調用此存儲過程,然後檢查datareader.hasrows()
。如果條件值爲真(1
),則該表具有標識列(如果已設置)。如果不是,那麼它沒有標識列。
請你能詳細說明這個問題嗎?謝謝你 – Shiny 2010-05-20 08:35:27
檢查現在的答案 – 2010-05-20 09:12:04
做到這一點的一種方法是利用存儲過程sp_help
。即:
sp_help MyTable
這將返回有你需要在桌子上的所有信息的數據集。有一個具有身份信息的特定表。
即:
如果它不包含的標識字段標識列會說:「沒有定義標識列」。
我會補充說你可以突出顯示錶的名稱,然後在SSMS中使用鍵盤組合ALT + F1作爲快捷鍵。 – 2017-08-03 17:42:54
@Pranay:他說精簡版。存儲過程不受支持,並且沒有sys.anything。
這是呼叫:
SELECT Count(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE AUTOINC_INCREMENT IS NOT NULL AND TABLE_NAME='this_table'
這將返回1(真)或0(假)。
不適用於我 - 無列「AUTO_INC_INCREMENT」 – 2016-03-07 07:04:08
您有額外的下劃線 – Patrick 2016-03-07 15:58:47
任何下面的查詢可以用來檢查是否包含標識列存在於該表
1)
SELECT *
FROM sys.identity_columns
WHERE OBJECT_NAME(object_id) = 'TableName'
2)
SELECT *
FROM sys.identity_columns
WHERE object_id = (
SELECT id
FROM sysobjects
WHERE name = 'TableName'
)
我知道它的很長一段時間但我發現這有幫助
試試這個:
IF EXISTS (SELECT * from syscolumns where id = Object_ID(@TABLE_NAME) and colstat & 1 = 1)
BEGIN
-- Do your things
END
這一點,讓ü所有的表名,表的COLUMNNAMES和is_identity或不選擇的數據庫
SELECT
sys.columns.name
, sys.tables.name
, is_identity
FROM sys.columns
INNER JOIN sys.tables ON sys.tables.object_id = sys.columns.object_id
AND sys.columns.is_identity = 1
IF (OBJECTPROPERTY(OBJECT_ID('TABLE_NAME'), 'TableHasIdentity') = 1)
ObjectProperty
可以啓動SQL Server 2008中參考查詢: OBJECTPROPERTY
我只想添加此選項以及我認爲這是最簡單的
SELECT COLUMNPROPERTY(OBJECT_ID('TableName'),'ColumnName','isidentity')
我同意@johnmcp。這個選項確實很簡單,當列是標識時返回1,當列不是標識列時返回0 – Rajat 2017-02-03 11:02:48
- 1. 如何獲取具有標識列的所有表的列表
- 2. 如何識別「hw.machine」標識符是否可靠?
- 3. 插入到具有標識列的表
- 4. 如何識別列
- 5. 是否有可能在具有標識列的表上使用表分割?
- 6. 標識識別3.1
- 7. 標識識別 - 如何提高性能
- 8. 「產品類別」是否與「產品」具有識別關係?
- 9. 如何識別表中是否有多個記錄可用?
- 10. 如何識別是否禁用了Cookie
- 11. 如何識別ESC是否被按下?
- 12. python:識別列表是否有重複的號碼
- 13. 如何創建具有標識列的表格
- 14. 如何創建具有標識列的臨時表?
- 15. 識別具有重複值
- 16. 是否可以識別散列類型?
- 17. 如何識別x509標誌
- 18. haskell標識符識別
- 19. SystemParametersInfo DPI是否可識別?
- 20. PCP是否可識別?
- 21. 如何確定列是否是MSSQL 2000中的標識列?
- 22. 識別對象[1]是否有值?
- 23. 是否有身份識別功能?
- 24. IOS是否有手寫識別庫?
- 25. 識別UIImageView上是否有圖像
- 26. 是否有scala身份識別功能?
- 27. 如何識別可用的RDD列表?
- 28. 如何識別數據表的列名
- 29. apache spark是否具有地理意識?
- 30. 如何識別表達式是否是「方法調用」?
不要忘記標記答案爲接受,如果你有你想要的信息 – 2011-06-13 17:13:10
另請參見[你如何確定什麼SQL表以編程方式具有標識列](http://stackoverflow.com/q/87747) – 2016-06-10 08:47:54