Sql-Server
有沒有辦法檢查 MS-SQL 中的所有列定義?
我正在用 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;