SQL Server 2005如何创建唯一约束?

SQL Server 2005如何创建唯一约束?

SQL Server 2005 How Create a Unique Constraint?

如何在SQL Server 2005中的现有表上创建唯一约束?

我正在寻找TSQL以及如何在数据库图表中完成它。


SQL命令是:

1
2
3
4
5
ALTER TABLE <tablename> ADD CONSTRAINT
            <constraintname> UNIQUE NONCLUSTERED
    (
                <columnname>
    )

请参阅此处的完整语法。

如果您想从数据库图表中执行此操作:

  • 右键单击表并选择"索引/键"
  • 单击"添加"按钮以添加新索引
  • 在右侧的属性中输入必要的信息:

    • 你想要的列(点击省略号按钮选择)
    • 设置是独特的是
    • 给它一个合适的名字

在SQL Server Management Studio Express中:

  • 右键单击表,选择"修改"或"设计"(对于以后的版本)
  • 右键单击字段,选择"索引/键"...
  • 单击添加
  • 对于"列",请选择要唯一的字段名称。
  • 对于Type,选择Unique Key。
  • 单击关闭,保存表格。


1
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([COLUMNS])

警告:您设置为唯一的列中只能有一个空行。

您可以使用SQL 2008中的筛选索引执行此操作:

1
2
3
CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;

请参阅字段值必须是唯一的,除非它对于一系列答案为NULL。


1
2
3
4
5
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]

我还发现你可以通过数据库图表来做到这一点。

通过右键单击表并选择索引/键...

单击"添加"按钮,将列更改为您希望使其唯一的列。

变化是独一无二的。

单击关闭并保存图表,然后将其添加到表中。


您正在寻找以下内容

1
2
3
ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

MSDN文档


要在已创建表时在一列或多列上创建UNIQUE约束,请使用以下SQL:

1
ALTER TABLE TableName ADD UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

允许为上述查询命名UNIQUE约束

1
ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

MySQL / SQL Server / Oracle / MS Access支持的查询。


在管理工作室图表中选择表格,如果需要,右键单击以添加新列,右键单击该列并选择"检查约束",您可以在其中添加一个。


在某些情况下,可能需要确保在创建Unique键之前不存在该唯一键。在这种情况下,下面的脚本可能会有所帮助:

1
2
3
4
5
6
IF EXISTS(SELECT * FROM sys.indexes WHERE name LIKE '<index_name>')
    ALTER TABLE dbo.<target_table_name> DROP CONSTRAINT <index_name>
GO

ALTER TABLE dbo.<target_table_name> ADD CONSTRAINT <index_name> UNIQUE NONCLUSTERED (<col_1>, <col_2>, ..., <col_n>)
GO


推荐阅读

    linux三十个基本命令?

    linux三十个基本命令?,工作,地址,系统,信息,命令,管理,目录,单位,数据,生产,l

    linux查询ip命令?

    linux查询ip命令?,地址,网络,信息,设备,系统,电脑,终端,命令,中心,技术指标,l

    linux命令赋予权限?

    linux命令赋予权限?,系统,密码,档案,权限,数字,地址,用户,文件,命令,目录,详

    linux命令中的花括号?

    linux命令中的花括号?,系统,电脑,密码,命令,地址,代码,工作,管理,终端,文件,l

    夸虚机linux复制命令?

    夸虚机linux复制命令?,系统,工具,项目,电脑,位置,文件,命令,基本知识,源文

    linux命令行输入汉字?

    linux命令行输入汉字?,系统,软件,发行,管理,终端,命令,模式,编辑,文件,文本,L

    linux下编号的命令?

    linux下编号的命令?,工作,系统,信息,命令,状态,地址,工具,目录,软件,基础,在L

    linux命令解压怎么用?

    linux命令解压怎么用?,系统,命令,文件,软件,管理,标准,名称,工具,文件名,目

    linux过滤命令参数?

    linux过滤命令参数?,工具,数据,标准,地址,命令,设备,系统,信息,指令,文件,如

    linux解压常用命令?

    linux解压常用命令?,系统,工具,文件,电脑,命令,平台,手机,格式,目录,文件名,

    linux入侵网站命令?

    linux入侵网站命令?,工作,地址,信息,系统,数字,网站,名称,命令,网络,密码,lin

    conf命令linux?

    conf命令linux?,系统,网络,信息,命令,管理,路径,文件,模式,终端,光标,如何在L

    linux命令写在一起?

    linux命令写在一起?,系统,工作,信息,地址,命令,文件,目录,工具,内容,功能,lin

    linux开启终端命令行?

    linux开启终端命令行?,密码,系统,电脑,终端,首页,工具,软件,命令,权限,用户,l

    linuxvi选中命令?

    linuxvi选中命令?,工作,系统,位置,信息,正规,数字,首开,模式,命令,光标,linux

    linux怎么切换命令框?

    linux怎么切换命令框?,系统,密码,工具,电脑,首页,软件,地方,终端,界面,图形

    linux打开网络命令?

    linux打开网络命令?,网络,系统,地址,工作,信息,工具,管理,命令,基础,状态,Lin

    linux命令下载工具?

    linux命令下载工具?,工具,网络,代理,代码,简介,位置,系统,第一,下载工具,文

    linux命令指定jdk?

    linux命令指定jdk?,系统,官网,工具,状态,一致,底部,情况,环境变量,路径,文件

    linux终端编译命令?

    linux终端编译命令?,代码,工具,环境,系统,终端,文件,源程序,编译器,语言,指