在表2中UPDATE触发器或键唯一性索引

解决方案 »

  1.   

    我认为你的主-外键关系是创建于表2.A和表1.B之间的,当表1.B改变时,要求应为表2.A中已有的数据,而表2.B
      

  2.   

    我认为你的主-外键关系是创建于表2.A和表1.B之间的,当表1.B改变时,要求应为表2.A中已有的数据,而表2.B并不受此主-外键约束,故没有达到你所希望的的效果。
      

  3.   

    在试图建立INSTEAD OF 触发器
    可以参照:
    http://www.csdn.net/expert/topic/610/610567.xml?temp=.9130823
      

  4.   

    我创建在视图上的instead of update怎么不管用?激发不了啊。
    CREATE  trigger [dbo].[TRI_INSTEAD]
    on [VIEW]
    instead of Update
    ASdeclare @old_content nvarchar(50)
    declare @content nvarchar(50)
    declare @help_id nvarchar(10)
    declare @student_id nvarchar(10)
    if update([民族])
    begin
    select @old_content = [民族] from deleted
    select @student_id = [学生编号] from deleted
    select @content = [民族] from inserted

    SELECT @help_id = [编号] FROM [HELP_民族]
    where [民族] = @content if (@help_id = NULL)
    begin 
    raiserror('要求的不在HELP库里',10,0)
    ROLLBACK
    return 
    end  update [在校生基本信息表] 
    set [在校生基本信息表].[民族] = @help_id
    where [在校生基本信息表].[学生编号] = @student_id 
    end
      

  5.   

    我又做了一个简单的视:[VIEW]
    SELECT 学生编号, 姓名, 性别, 出生日期, 民族, 政治面貌, 年级
    FROM dbo.在校学生基本信息表
    CREATE TRIGGER [TRI_INSEADOF_UPDATE] ON [dbo].[VIEW] 
    INSTEAD OF UPDATE
    AS
    begin
    UPDATE [在校生基本信息表] set [姓名] = [姓名] + 'mhx'
    end还是不行。我的方法是:打开视中所有记录,改动一个记录的某一个字段值。结果没有执行我的触发器
      

  6.   

    是不是建了多个insert触发器?