2012-09-26 54 views
0

我試圖在SQL Azure Federation中創建一個唯一的列,但即使下面的查詢創建了一個表,我仍然可以將條目保存到具有相同Column1的表中值。什麼是設置獨特列的正確方法?我需要確保ID是聯合uniqueidentifier列,而就本演示而言,Column1不能有重複值。在SQL Azure Federation中創建一個唯一列

CREATE TABLE dbo.Table1(
     ID uniqueidentifier NOT NULL, 
     Column1 nvarchar(50) NOT NULL, 
     Column2 nvarchar(15) NULL, 
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
(
    ID ASC 
), 
CONSTRAINT [PK_Table2] UNIQUE NONCLUSTERED 
(
    ID ASC, 
    Column1 ASC 
) 
) FEDERATED ON ([dist] = ID) 
GO 
+0

真的不明白這個問題。你不能在Column1上創建一個唯一的約束。 – Craig

+0

這是我前一段時間的原始問題:http://stackoverflow.com/questions/12416925/create-a-table-with-a-primary-key-and-a-separate-unique-column-in-sql- azure-fede它解釋了我想要做的事情。基本上,ID列需要是主鍵,而EMAIL_ADDRESS列需要具有唯一值。 – Mark13426

回答

0

未經測試,你能不能做到這一點

CREATE TABLE dbo.Table1(
     ID uniqueidentifier NOT NULL, 
     Column1 nvarchar(50) NOT NULL, 
     Column2 nvarchar(15) NULL, 
CONSTRAINT [PK_Table1] UNIQUE NONCLUSTERED 
(
    ID ASC, 
    Column1 ASC 
) 
) FEDERATED ON ([dist] = ID) 
GO 

CREATE UNIQUE INDEX uix_table1_column1 ON Table1(Column1) 
GO 

然後,你將有一個主鍵包含了聯邦和獨立的唯一約束。

+0

這不起作用。由於以下錯誤,將不會創建uix_table1_column1:「聯合表上的唯一索引或聚簇索引必須包含聯合列。」我試着用ON Table1(ID,Column1)。我能夠創建表格,但我仍然可以保存Column1的重複值。 – Mark13426

+0

請注意,ID列必須是主鍵,而Column1需要具有唯一值。所以,基本上沒有重複值可以保存在每列下。 – Mark13426

+0

我會說你那時運氣不好。無論如何,我更喜歡在應用程序層中像這樣管理唯一性。 – Craig