大侠,最好把例子举出来瞧瞧

解决方案 »

  1.   

    /*
    标题:两表通过字段关联进行级联删除。
    作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)
    时间:2008-11-20
    地点:广东深圳
    */create table ta(id int not null)
    create table tb(id int , aid int)
    insert into ta values(1)
    insert into ta values(2)
    insert into tb values(1 , 1)
    insert into tb values(2 , 2)
    insert into tb values(3 , 1)
    go--一、查看原始数据
    --ta表的原始数据
    select * from ta
    /*
    id          
    ----------- 
    1
    2
    */
    --tb表的原始数据
    select * from tb
    /*
    id          aid         
    ----------- ----------- 
    1           1
    2           2
    3           1
    */--二、看看没有创建级联删除时的情况(删除ta表id=1的数据,看看是否影响tb表)
    delete from ta where id = 1
    select * from ta
    /*
    id          
    ----------- 
    2
    */
    select * from tb
    /*
    id          aid         
    ----------- ----------- 
    1           1
    2           2
    3           1
    */--三、恢复原始数据,创建级联删除,删除ta表id=1的数据,看看是否影响tb表
    insert into ta values(1)
    --为ta创建主健
    alter table ta add constraint pk_ta_id primary key (id)
    go
    --为tb创建外健,并指定级联删除
    alter table tb add constraint fk_tb_aid foreign key (aid) references ta(id) on delete cascade
    go
    delete from ta where id = 1
    select * from ta
    /*
    id          
    ----------- 
    2
    */
    select * from tb
    /*
    id          aid         
    ----------- ----------- 
    2           2
    */--删除级联约束
    alter table tb drop constraint fk_tb_aid
    go
    --删除测试表
    drop table ta , tb
    go
      

  2.   

    CREATE TABLE
    创建新表。语法
    CREATE TABLE
        [ database_name.[ owner ] .| owner.] table_name
        ( { < column_definition >
            | column_name AS computed_column_expression
            | < table_constraint > ::= [ CONSTRAINT constraint_name ] }            | [ { PRIMARY KEY | UNIQUE } [ ,...n ]
        ) [ ON { filegroup | DEFAULT } ] 
    [ TEXTIMAGE_ON { filegroup | DEFAULT } ] < column_definition > ::= { column_name data_type }
        [ COLLATE < collation_name > ]
        [ [ DEFAULT constant_expression ]
            | [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ]
        ] 
        [ ROWGUIDCOL]
        [ < column_constraint > ] [ ...n ] < column_constraint > ::= [ CONSTRAINT constraint_name ]
        { [ NULL | NOT NULL ]
            | [ { PRIMARY KEY | UNIQUE }
                [ CLUSTERED | NONCLUSTERED ]
                [ WITH FILLFACTOR = fillfactor ]
                [ON {filegroup | DEFAULT} ] ]
            ] 
            | [ [ FOREIGN KEY ]
                REFERENCES ref_table [ ( ref_column ) ]
                [ ON DELETE { CASCADE | NO ACTION } ]
                [ ON UPDATE { CASCADE | NO ACTION } ]
                [ NOT FOR REPLICATION ]
            ] 
            | CHECK [ NOT FOR REPLICATION ]
            ( logical_expression ) 
        } < table_constraint > ::= [ CONSTRAINT constraint_name ]
        { [ { PRIMARY KEY | UNIQUE }
            [ CLUSTERED | NONCLUSTERED ]
            { ( column [ ASC | DESC ] [ ,...n ] ) }
            [ WITH FILLFACTOR = fillfactor ]
            [ ON { filegroup | DEFAULT } ]
        ] 
        | FOREIGN KEY
            [ ( column [ ,...n ] ) ]
            REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
            [ ON DELETE { CASCADE | NO ACTION } ]
            [ ON UPDATE { CASCADE | NO ACTION } ]
            [ NOT FOR REPLICATION ]
        | CHECK [ NOT FOR REPLICATION ]
            ( search_conditions ) 
      

  3.   


    语法:
    Foreign Key
    (column[,...n])
    references referenced_table_name[(ref_column[,...n])]
    [on delete cascade]
    [on update cascade]
    注释:
    column:列名
    referenced_table_name:外键参考的主键表名称
    ref_name:外键要参考的表的主键列
    on delete:删除级联
    on update:更新级联
      

  4.   

    --触发器实现级联更新create table 班级表(班级名 char(8),系部名 char(10),学制 int)insert 班级表 values('天动一班','大气科学系',4)
    insert 班级表 values('天动二班','大气科学系',4)
    insert 班级表 values('天动三班','大气科学系',4)
    insert 班级表 values('天动四班','大气科学系',4)create table 学生表(学号 char(8),姓名 char(6),班级名 char(8))insert 学生表 values('01980001','张一','天动一班')
    insert 学生表 values('01980002','张二','天动一班')
    insert 学生表 values('01980003','张三','天动一班')
    insert 学生表 values('01980004','张四','天动二班')
    insert 学生表 values('01980005','张五','天动二班')
    insert 学生表 values('01980006','张六','天动三班')
    insert 学生表 values('01980007','张七','天动四班')
    CREATE TRIGGER [T1] ON 班级表
    FOR UPDATE
    AS
    if update(班级名)
       update a
       set a.班级名 = (select 班级名 from inserted )
       from 学生表 a join deleted b
       on a.班级名 = b.班级名
    goupdate 班级表
    set 班级名='自动化'
    where 班级名 = '天动一班'
    /*
    更新前
    学号       姓名     班级名      
    -------- ------ -------- 
    01980001 张一     天动一班
    01980002 张二     天动一班
    01980003 张三     天动一班
    01980004 张四     天动二班
    01980005 张五     天动二班
    01980006 张六     天动三班
    01980007 张七     天动四班
    更新后学号       姓名     班级名      
    -------- ------ -------- 
    01980001 张一     自动化  
    01980002 张二     自动化  
    01980003 张三     自动化  
    01980004 张四     天动二班
    01980005 张五     天动二班
    01980006 张六     天动三班
    01980007 张七     天动四班
    */
      

  5.   

    如果, 表Aid name
    1 nihao
    2 haha表B
    id aid name
    1  1   aaaa
    2 1   bbbb
    3 2  ccccc
    alter table ta add constraint pk_ta_id primary key (id) alter table tb add constraint fk_tb_aid foreign key (aid) references ta(id) on delete cascade on update cascade
    有级联的方式来修改
    根据表A的ID来修改表B所对应的ID数据.
      

  6.   


    on update:更新级联
    再用个级联更新呀