首页 文章

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

提问于
浏览
180

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

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

10 回答

  • 15

    SQL命令是:

    ALTER TABLE <tablename> ADD CONSTRAINT
                <constraintname> UNIQUE NONCLUSTERED
        (
                    <columnname>
        )
    

    请参阅完整语法here .

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

    • 右键单击表格并选择'Indexes/Keys'

    • 单击“添加”按钮以添加新索引

    • 在右侧的属性中输入必要的信息:

    • 您想要的列(单击省略号按钮进行选择)

    • set是唯一的Yes

    • 给它一个合适的名字

  • 28

    在SQL Server Management Studio Express中:

    • 右键单击表,选择 ModifyDesign(For Later Versions)

    • 右键单击字段,选择 Indexes/Keys...

    • 点击 Add

    • 对于 Columns ,选择您想要唯一的 field name .

    • 对于 Type ,选择 Unique Key .

    • 单击 CloseSave 表 .

  • 5
    ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])
    
  • 10

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

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

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

    有关一系列答案,请参阅Field value must be unique unless it is NULL .

  • 8
    ALTER TABLE dbo.<tablename> ADD CONSTRAINT
                <namingconventionconstraint> UNIQUE NONCLUSTERED
        (
                    <columnname>
        ) ON [PRIMARY]
    
  • 13

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

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

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

    变化是独一无二的 .

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

  • 6

    您正在寻找以下内容

    ALTER TABLE dbo.doc_exz
    ADD CONSTRAINT col_b_def
    UNIQUE column_b
    

    MSDN Docs

  • 271

    要在已创建表时在一列或多列上创建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支持的查询 .

  • 84

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

  • 0

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

    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
    

相关问题