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

How can I force a column to be unique for an entire table in SQL Server 2008 R2?(如何在SQL Server 2008 R2中强制使列对于整个表是唯一的?)
本文介绍了如何在SQL Server 2008 R2中强制使列对于整个表是唯一的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有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

这篇关于如何在SQL Server 2008 R2中强制使列对于整个表是唯一的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)