在内存表中创建唯一非聚集索引。

3
我有一个场景。 我希望我的内存表列接受多个NULL值,但输入除NULL之外的内容时,它应该是唯一的。 在磁盘表中,我一直使用CREATE UNIQUE NONCLUSTERED INDEX 实现此目的。
例如:
CREATE UNIQUE NONCLUSTERED INDEX  [IX_customer_PRN]
ON [dbo].[customer](PRN)
WHERE PRN IS NOT NULL
GO

需要适用于内存表的合适替代方案。


你能否使用临时表代替内存表? - GuidoG
也许这个链接可以帮助你:https://dev59.com/S3NA5IYBdhLWcg3wn_fD - GuidoG
1个回答

2
根据内存表的文档所述,您只需要在表上创建一个唯一的非聚集索引,如下所示,即可实现您所需的功能: "最初的回答"。
ALTER TABLE [dbo].[customer]
    ADD CONSTRAINT IX_customer_PRN
    UNIQUE NONCLUSTERED (PRN);  
GO

关于“内存优化”表的内容。我不确定OP所说的“内存表”是否是指这个。 - GuidoG
鉴于表名为dbo.customer,我假设它不是临时表或变量表。 - Rigerta
我认为那个名字是他用普通表格的一个例子。但当然我可能错了。 - GuidoG
我也可能错了 :) 让我们等待 OP 的回答。 - Rigerta
唯一的非聚集索引将在内存表中接受一个空值。我希望该列能够接受多个空值,但除了空值之外的任何内容都应该是唯一的。 - Younus Mohammed
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接