SQL Server 2005 如何创建唯一约束?
-
09-06-2019 - |
题
如何在 SQL Server 2005 中的现有表上创建唯一约束?
我正在寻找 TSQL 以及如何在数据库图中执行它。
解决方案
SQL命令是:
ALTER TABLE <tablename> ADD CONSTRAINT
<constraintname> UNIQUE NONCLUSTERED
(
<columnname>
)
查看完整语法 这里.
如果您想从数据库图表中执行此操作:
- 右键单击表并选择“索引/键”
- 单击添加按钮添加新索引
- 在右侧的属性中输入必要的信息:
- 您想要的列(单击省略号按钮进行选择)
- 将“唯一”设置为“是”
- 给它一个合适的名字
其他提示
在 SQL Server Management Studio Express 中:
- 右键单击表格,选择 调整 或者 设计(后续版本)
- 右键单击字段,选择 索引/键...
- 点击 添加
- 为了 列, ,选择 字段名称 你想要独一无二。
- 为了 类型, , 选择 独特的钥匙.
- 点击 关闭, 节省 桌子。
ALTER TABLE [TableName] ADD CONSTRAINT [constraintName] UNIQUE ([columns])
警告:您设置为唯一的列中只能有一个空行。
您可以使用 SQL 2008 中的过滤索引来执行此操作:
CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;
看 字段值必须唯一,除非为 NULL 以获得一系列答案。
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
<namingconventionconstraint> UNIQUE NONCLUSTERED
(
<columnname>
) ON [PRIMARY]
我还发现您可以通过数据库图表来做到这一点。
右键单击表并选择索引/键...
单击“添加”按钮,然后将列更改为您希望唯一的列。
改变是唯一的。
单击关闭并保存图表,它会将其添加到表中。
要在表已创建时对一列或多列创建 UNIQUE 约束,请使用以下 SQL:
ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)
允许为上述查询命名 UNIQUE 约束
ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)
MySQL / SQL Server / Oracle / MS Access 支持的查询。
在 Management Studio 图表中选择表,如果需要,右键单击添加新列,右键单击该列并选择“检查约束”,您可以在其中添加一个。
在某些情况下,可能需要在创建唯一键之前确保它不存在。在这种情况下,下面的脚本可能会有所帮助:
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
不隶属于 StackOverflow