相关疑难解决方法(0)

TSQL多列唯一约束,也允许多个空值

我目前正在从MS Access迁移到SQL Server.由于Access允许在唯一索引上有多个Null,而SQL Server没有......我一直在通过删除SQL Server中的索引并添加过滤索引来处理迁移:CREATE UNIQUE NONCLUSTERED INDEX idx_col1_notnull ON tblEmployee(col1) WHERE col1 IS NOT NULL;

我遇到的问题是我不确定如何实现复合或多列"过滤"索引...或者如果这是真的可能,因为我没有找到研究它的例子.

我有一个想法,通过创建过滤索引来实现它,如下所示:

CREATE UNIQUE NONCLUSTERED INDEX idx_col1col2_notnull ON tblEmployee(col1,col2) WHERE col1 IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

然后添加第二个过滤索引:

CREATE UNIQUE NONCLUSTERED INDEX idx_col2col1_notnull ON tblEmployee(col1,col2) WHERE col2 IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否会起作用,更不用说是最好的方法了.我们将非常感谢正确方向的指导.

sql t-sql sql-server sql-server-2008 filtered-index

4
推荐指数
1
解决办法
1767
查看次数

一个表中有多个唯一键

我的数据库中有一个Product表,其中包含以下各列:

ProductId INT IDENTITY PRIMARY KEY
ProductCode VARCHAR(100) NOT NULL
ProductStamp VARCHAR(100) NOT NULL
Run Code Online (Sandbox Code Playgroud)

我需要ProductCode和ProductStamp都是唯一的,例如:

允许的

Code Stamp
---- -----
A001 S001
A002 S002
Run Code Online (Sandbox Code Playgroud)

不允许

Code Stamp
---- -----
A001 S001
A001 S002
Run Code Online (Sandbox Code Playgroud)

如何实现呢?非常感谢你

sql sql-server

3
推荐指数
1
解决办法
2967
查看次数

标签 统计

sql ×2

sql-server ×2

filtered-index ×1

sql-server-2008 ×1

t-sql ×1