Sql-Server-2005
這個倒置的銀鑰匙圖示是什麼
我繼承了 SQL Server 2005 3rd 方伺服器和數據庫,以便研究能夠在其上生成報告和儀表板。
在一張桌子上,我發現了一個新圖示:一個藍銀倒置鍵,以及我的其他主鍵和外鍵。
當我右鍵點擊它時,上下文菜單為我提供了“腳本約束為”的選項,但是當我嘗試“修改”它時,它會打開列設計表單(如主鍵),然而,它出現在“索引”部分,而不是約束。
有人知道它叫什麼名字和用途嗎?
它表示一個獨特的約束。在 SQL Server 中,唯一約束實際上是作為索引實現的;這就是為什麼它也出現在
Indexes
節點下的原因(我無法很好地解釋為什麼它至少沒有在Constraints
節點下列出,也不能很好地解釋為什麼他們選擇了一個倒置的鍵而不是不同的顏色)。您應該在此處看到一個結果,以驗證這實際上是作為索引實現的:
SELECT index_id, type_desc, is_unique_constraint FROM sys.indexes WHERE name = N'IX_tblCustIndex';
您說您看到了“腳本約束為…” - 如果您遵循它,它會為您提供類似以下的腳本:
ALTER TABLE [dbo].[tblCustIndex] ADD UNIQUE NONCLUSTERED ( [some_column] ASC ) WITH (...a bunch of default options...)
但是不要執行它,因為這種語法不使用名稱,它只會創建第二個冗餘的唯一約束……
這是一個非常簡單的複製品,證明我在 2014 年即使使用非常基本的語法也能得到顛倒的密鑰:
CREATE TABLE dbo.foo(id INT UNIQUE);
現在,如果您顯式創建唯一索引,則可以獲得不同的圖示(您將看到的唯一區別
sys.indexes
是 的名稱和值is_unique_constraint
):有關其他差異,請參閱此 Stack Overflow 答案。