2010-09-10 58 views
2

我想在表中爲7列創建唯一的約束,所以當有人想要在這個表中插入數據時,這些列一起是唯一的。在Oracle中,這是很簡單的,但在這裏....SQL管理工作室對7列的t-sql唯一約束

我可以通過SQL代碼做到這一點:

CREATE TABLE Example 
(Col1 int NOT NULL, 
Col2 int NOT NULL, 
CONSTRAINT CK_Col1_Col2 UNIQUE NONCLUSTERED (Col1, Col2) 
) 

任何人都知道如何在SQL Management Studio中做這個?

回答

0
CREATE TABLE Example 
(
    Col1 int NOT NULL, 
    Col2 int NOT NULL, 
    Col3 int NOT NULL, 
    Col4 int NOT NULL, 
    Col5 int NOT NULL, 
    Col6 int NOT NULL, 
    Col7 int NOT NULL 
) 

CREATE INDEX CREATE UNIQUE NONCLUSTERED INDEX UI_IndexName ON Table (Col1, Col2...) 
+0

如果您發佈的是代碼或XML,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼」按鈕(101 010),以良好地格式化和語法突出顯示它! – 2010-09-10 16:53:21

2

在SQL Server 2005這個作品

CREATE TABLE Example 
(Col1 int NOT NULL, 
Col2 int NOT NULL, 
Col3 int NOT NULL, 
Col4 int NOT NULL, 
Col5 int NOT NULL, 
Col6 int NOT NULL, 
Col7 int NOT NULL, 
CONSTRAINT CK_Col1_7 UNIQUE NONCLUSTERED (Col1, Col2, Col3, Col4, Col5, Col6, Col7) 
) 
0

在SSMS進入表設計屏幕(右鍵單擊表 - 設計)。轉到表設計器菜單並選擇索引/鍵。點擊添加按鈕。在屬性窗口中選擇您的列(全部7列),忽略升序/降序選項並點擊確定。將type屬性更改爲唯一鍵(它應該自動將unique屬性更改爲true)。給它一個名字,如果你想要一個描述並點擊關閉按鈕。然後點擊保存按鈕保存您的更改。

4

如果您通過腳本創建表格和其他對象,那麼您比SSMS更好。如果您將這些腳本保存在源代碼管理中會更好。

+2

我嘗試了十一次這樣的投票,但它所做的只是切換我的投票:(一個腳本代替SSMS,10個投票控制源碼) – 2010-09-10 17:12:39

+0

雖然這兩件事並不是互斥的,但可以使用SSMS通過GUI執行任務,然後可以使用「生成更改腳本」選項,而不是直接保存更改。 – 2010-09-11 11:29:27