Sql-Server

有沒有辦法檢查 MS-SQL 中的所有列定義?

  • August 19, 2021

我正在用 MS-SQL 編寫第一個程序。這個想法是為下一個元組提出建議。

其中一項功能基於自動增量(如果設置了自動增量,則取最高的填充值,並將自動增量步長添加到該值作為提議)。

為了對此進行測試,我想知道哪個表中的哪一列將AutoIncrement屬性設置為TRUE. 我一直在尋找INFORMATION_SCHEMA.COLUMNS並進一步尋找INFORMATION_SCHEMA,但我沒有找到任何東西。

有沒有辦法對所有列定義啟動查詢並找到自動增量列?

提前致謝

INFORMATION_SCHEMA 列旨在與 ANSI/ISO SQL 兼容。在實踐中,這意味著它們往往是最小的公分母。即,不在 SQL 標準中或可能是最近添加的內容不會在這些視圖中公開。(自 2005 年以來,MS 往往不會費心擴展其對這些的實施。)

這就是為什麼我們更喜歡使用目錄視圖。https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/catalog-views-transact-sql?view=sql-server-ver15

在這種情況下,您要查看 Object 類別,而有問題的視圖是 sys.columns,列是_identity。

讓我們知道您是否想要關於這些的 SQL 查詢範例,在這種情況下更具體地說明您希望結果如何 - 或者您是否可以從這裡獲取…

您可以查詢sys.columns系統視圖以獲取此資訊:

SELECT
 c.name,
 t.name as table_name
FROM sys.columns c
JOIN sys.tables t ON t.object_id = c.object_id
WHERE c.is_identity = 1;

引用自:https://dba.stackexchange.com/questions/298255