BEGIN
 SET NOCOUNT ON;
     if ( deleted.采购合同号 like '#%' and inserted.采购合同号 like '#%')
     begin
       if (inserted.采购单耗<> deleted.采购单耗) 
        begin
        insert into 合同变更明细 values (getdate(),'采购单耗','+deleted.采购单耗+','+inserted.采购单耗+')
        end
     end
     
END
[code=SQL]GO
我上面这个代码是个触发器的代码,运行后报了一下错误,请大家看看
消息 4104,级别 16,状态 1,过程 合同信息,第 11 行
无法绑定由多个部分组成的标识符 "deleted.采购合同号"。
消息 4104,级别 16,状态 1,过程 合同信息,第 11 行
无法绑定由多个部分组成的标识符 "inserted.采购合同号"。
消息 4104,级别 16,状态 1,过程 合同信息,第 13 行
无法绑定由多个部分组成的标识符 "inserted.采购单耗"。
消息 4104,级别 16,状态 1,过程 合同信息,第 13 行
无法绑定由多个部分组成的标识符 "deleted.采购单耗"。[/code]

解决方案 »

  1.   

    BEGIN
         SET NOCOUNT ON;
         if ( exists select * from deleted where deleted.采购合同号 like '#%' and inserted.采购合同号 like '#%')
         begin
           if (inserted.采购单耗<> deleted.采购单耗) 
            begin
            insert into 合同变更明细 values (getdate(),'采购单耗','+deleted.采购单耗+','+inserted.采购单耗+')
            end
         end
         
    END
      

  2.   


    BEGIN
         declare @采购合同号1 varchar(100),@采购合同号2 varchar(100),@采购单耗1 int,@采购单耗2 int
         select @采购合同号1,@采购单耗1 from deleted
         select @采购合同号2,@采购单耗2 from deleted
         if ( @采购合同号1 like '#%' and @采购合同号2 like '#%')
         begin
           if (@采购单耗1<> @采购单耗2) 
            begin
            insert into 合同变更明细 values (getdate(),'采购单耗',@采购单耗1,@采购单耗2)
            end
         end
    END