2012-07-27 78 views
0

我有供應商表格,供應商ID爲主鍵。我有一個供應商類型列,可以是航空公司(AL),酒店(HT),旅遊(T)。使用約束條件的複合唯一SQL Server 2008

對於供應商類型航空公司(AL)我想要的airline_typeairline_abbr列是複合獨特以及所述airline_typeairline_iata_code是複合唯一的。

我不想將此設置爲主鍵,因爲主鍵已經聲明。

如何去呢?任何想法或建議?

感謝,

回答

1

您可以創建你的桌子上獨一無二的篩選指標:

CREATE UNIQUE NONCLUSTERED INDEX IX_Airline_TypeAbbr 
ON dbo.Supplier (airline_type, airline_abbr) 
WHERE supplier_type = 'AL' 

CREATE UNIQUE NONCLUSTERED INDEX IX_Airline_TypeIataCode 
ON dbo.Supplier (airline_type, airline_iata_code) 
WHERE supplier_type = 'AL' 

你可以閱讀更多關於過濾索引以及如何在皮納爾Dave的excellent blog post on the topic

使用它們