Sql-Server
有沒有辦法提取數據庫中所有主鍵的報告或編寫腳本?
我剛剛發現我們的一個數據庫的部署副本沒有主鍵。這可能是 SSMS 導入/導出嚮導的錯,它對我做了同樣的事情。我們的模式主副本仍然有主鍵,我想生成一個腳本,將這些鍵添加到沒有它們的任何已部署數據庫中。
我能希望的最好的事情就是為所有主鍵編寫腳本,但我也很樂意提取構成這些鍵的列的名稱並生成我自己的腳本。
SELECT * FROM (SELECT obj.name + '.' +col.name as colName, idx.name, idx.is_unique, idx.is_primary_key, idx.is_unique_constraint FROM sys.indexes idx INNER JOIN sys.objects obj ON idx.object_id = obj.object_id INNER JOIN sys.index_columns idxcol ON idxcol.index_id = idx.index_id AND idxcol.object_id = idx.object_id INNER JOIN sys.columns col ON col.column_id=idxcol.column_id AND col.object_id = idxcol.object_id WHERE obj.type_desc NOT IN ('SYSTEM_TABLE', 'INTERNAL_TABLE')) a WHERE a.is_primary_key = 1