如有
tab
ID  Group  Name
1   1      A
2   1      B
3   2      A
------------------------
设置为
ID为主键和自增
Group 为公司
Name  为名称
现在要求,记录不能有相同的Group Name值
我上一贴中只要求Name时,我加了索引再设置为唯一就可以了
但我发现没有办法同时设置两个字段那这个要求要怎么设置呢
语句?
SQL控件器操作?谢谢

解决方案 »

  1.   

    create unique index i_u_group_name
    on tb(group ,name)
    这样的话,group与name的组合必须是唯一 的
      

  2.   

    ---------------------------------
    --  Author: liangCK 小梁
    ---------------------------------
     
    --> 生成测试数据: [tab]
    IF OBJECT_ID('[tab]') IS NOT NULL DROP TABLE [tab]
    CREATE TABLE [tab] (ID INT,[Group] INT,Name VARCHAR(1))
    --SQL查询如下:ALTER TABLE tab
        ADD CONSTRAINT UNIQUE_GROUP_NAME_tab UNIQUE([Group],Name);INSERT INTO [tab]
    SELECT 1,1,'A' UNION ALL
    SELECT 2,1,'B' UNION ALL
    SELECT 3,2,'A' SELECT * FROM [tab]GO
    INSERT INTO [tab]
    SELECT 1,1,'A'
    GODROP TABLE tab;
      

  3.   

    add constraint CK_Age check (Age between 1 and 100) 
      

  4.   

    ADD CONSTRAINT UNIQUE_NAME UNIQUE([Group],Name);
      

  5.   

    IF OBJECT_ID('tb') IS NOT NULL DROP TABLE tbcreate table tb
    (
      ID int,
      [Name] varchar(20),
      [Group] int
    )
    alter table tb add constraint Union_Group_Name unique ([Group],[Name])
    insert into tb select 1,'aa',1
    insert into tb select 1,'aa',1消息 2627,级别 14,状态 1,第 1 行
    违反了 UNIQUE KEY 约束 'Union_Group_Name'。不能在对象 'dbo.tb' 中插入重复键。
    语句已终止。
      

  6.   

    IF OBJECT_ID('tb') IS NOT NULL DROP TABLE tbcreate table tb
    (
      ID int,
      [Name] varchar(20),
      [Group] int
    )
    alter table tb add constraint Union_Group_Name unique ([Group],[Name])
    insert into tb select 1,'aa',1
    insert into tb select 1,'aa',1消息 2627,级别 14,状态 1,第 1 行
    违反了 UNIQUE KEY 约束 'Union_Group_Name'。不能在对象 'dbo.tb' 中插入重复键。
    语句已终止。