2012-07-27 204 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

使用它们