如何在SQL Server 2008 R2中强制使列对于整个表是唯一的?

2022-08-07 00:00:00 sql database unique sql-server primary-key

我有一个带有Description字段的表。我希望确保没有两行具有相同的"Description",但我无法将Description写入我的IDENTITY列(我的ID列是一个int)。

Description设置为第二个主键(除了已经是主键的我的ID之外)是否安全?


解决方案

向Description列添加唯一索引。

使用SQL Server Management Studio右键单击表,然后选择设计。然后右击一列并选择"索引/键"。您将看到以下窗口提示

单击左下角的Add,然后指定索引的属性。如果要使用DDL脚本,请使用类似以下内容

CREATE UNIQUE NONCLUSTERED INDEX [IX_INDEXNAME] ON [dbo].[TABLENAME] 
(
    [Description] ASC
)
WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

相关文章