0
我想列出數據庫中的所有主鍵約束。我需要的信息是按名稱列出所有主鍵約束,而不是系統名稱
- 約束名
- 在關鍵
列的關鍵
有沒有人有一個查詢那裏呢?
由於提前,
我想列出數據庫中的所有主鍵約束。我需要的信息是按名稱列出所有主鍵約束,而不是系統名稱
列的關鍵
有沒有人有一個查詢那裏呢?
由於提前,
是,Damien_The_Unbeliever是正確的約束名字我不應該比較的基礎上,而不是我應該是比較基於TABLE.COLUMN名。
如何:
SELECT kcu.CONSTRAINT_NAME,
kcu.TABLE_NAME,
kcu.COLUMN_NAME,
kcu.ORDINAL_POSITION
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu
ON kcu.CONSTRAINT_NAME = pk.CONSTRAINT_NAME
WHERE pk.CONSTRAINT_TYPE = 'PRIMARY KEY'
我不確定你在「名稱」和「系統生成的名稱」之間繪製了什麼區別 - 我知道的唯一系統生成的名稱是在約束被添加時生成的唯一系統* *名稱 - 所以不存在約束同時具有「名稱」和「系統生成名稱」的情況。你能舉一個你的意思嗎? –
我需要比較兩個數據庫之間的主鍵約束。使用系統生成的約束名稱是不可能的,因爲約束名稱在每個數據庫上都不相同。有沒有另外一種方法可以引用一個限制,以便我可以跨數據庫比較它們? – user2135970
那麼當然你應該只是基於* table *名稱而不是* constraint *名稱來進行比較 - 因爲每個表只能有一個PK。 –