create trigger  ddd    instead of

解决方案 »

  1.   

    你可锁定记录
    1 如何锁一个表的某一行
    A 连接中执行SET TRANSACTION ISOLATION LEVEL REPEATABLE READbegin transelect * from tablename with (rowlock) where id=3waitfor delay '00:00:05'commit tranB连接中如果执行update tablename set colname='10' where id=3 --则要等待5秒update tablename set colname='10' where id<>3 --可立即执行2 锁定数据库的一个表SELECT * FROM table WITH (HOLDLOCK) 
    注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK) 
    其他事务可以读取表,但不能更新删除SELECT * FROM table WITH (TABLOCKX) 
      

  2.   

    http://expert.csdn.net/Expert/topic/2683/2683747.xml?temp=.1719477
      

  3.   

    CREATE TRIGGER tri_A
    ON tablename
    INSTEAD OF update, delete
    AS
    BEGIN
          if exists(select 1 from deleted where 入库时间 is not null)
             RAISERROR (...)
          else
            update ...(or delete...)   
    END
      

  4.   

    create trigger tr_test
    on 表
    for update
    as
    if exists(select * from inserted where 入库时间 is not null)
    begin
    raiserror ('修改的记录中有已入库的记录,操作失败!',16,1)
    rollback tran
    end
    go
      

  5.   

    同意楼上,用instead of
    可以看联机丛书INSTEAD OF
    多看帮助