当前位置: 代码迷 >> Sql Server >> 请指正下列触发器中的异常
  详细解决方案

请指正下列触发器中的异常

热度:29   发布时间:2016-04-27 21:39:47.0
请指正下列触发器中的错误
CREATE   TRIGGER   Ck_BcpIn_Dtl_ino     ON   dbo.Ck_BcpIn_Dtl  
FOR   insert
AS
Begin
Set   NoCount   On
declare   @Container_Code   as   Nvarchar(10)
declare   @Ymonth   as   Nvarchar(6)
declare   @type   as   Nvarchar(10)
declare   @store   as   Nvarchar(10)
declare   @cp_model     As   NvarChar(18)
declare   @cp_name     As   NvarChar(30)
declare   @cp_size     As   NvarChar(10)
declare   @cp_packing     As   NvarChar(10)
declare   @cp_grade     As   NvarChar(10)
declare   @cp_sb     As   NvarChar(10)
declare   @cp_stplace     As   NvarChar(10)
declare   @cp_pc   As   NvarChar(10)
declare   @In_Num     As   Numeric(9,0)

DECLARE   Temp_Table   CURSOR   FOR
Select     Container_Code,Ymonth,type,Store,Cp_model,cp_name,Cp_size,cp_packing,
                      cp_grade,cp_sb,cp_stplace,cp_pc,in_num       from   inserted
OPEN   Temp_Table
FETCH   NEXT   FROM   Temp_Table
INTO   @Container_Code,@Ymonth,   @type,@Store,@cp_model,@cp_name,@cp_size,@cp_packing,@cp_grade,@cp_sb,@cp_stplace,@cp_pc,   @In_Num
WHILE   @@FETCH_STATUS   =   0
BEGIN
update   Bcp_Xs_StDepInfoOut   set     Sdinfo_In=   Sdinfo_In+(@[email protected]_packing)     Where    
                  [email protected]_Code       and     [email protected]       And     [email protected]     and   [email protected]  
                  and     [email protected]_model     and     [email protected]_name     and   [email protected]_size   and   [email protected]_packing  
                  and   [email protected]_grade     and     [email protected]_sb   and     [email protected]_stplace     and     [email protected]_pc
  if   @@rowcount=0
        Begin
        Insert   into   Bcp_Xs_StDepInfoOut(container_code,ymonth,type,   store,   cp_model,   cp_name,cp_size,cp_packing,cp_grade,cp_sb,cp_stplace,cp_pc,sdinfo_in)
        Values   (   @Container_Code,@Ymonth,   @type,@Store,@cp_model,@cp_name,@cp_size,@cp_packing,@cp_grade,@cp_sb,@cp_stplace,@cp_pc,   @in_Num)
        End  
FETCH   NEXT   FROM   Temp_Table
INTO   @Container_Code,@Ymonth,   @type,@Store,@cp_model,@cp_name,@cp_size,@cp_packing,@cp_grade,@cp_sb,@cp_stplace,@cp_pc,   @in_Num
END

CLOSE   Temp_Table
DEALLOCATE   Temp_Table
Set   NoCount   Off




------解决方案--------------------
CREATE TRIGGER Ck_BcpIn_Dtl_ino ON dbo.Ck_BcpIn_Dtl
FOR insert
AS
Begin
--Set NoCount On
declare @Container_Code as Nvarchar(10)
declare @Ymonth as Nvarchar(6)
declare @type as Nvarchar(10)
declare @store as Nvarchar(10)
declare @cp_model As NvarChar(18)
declare @cp_name As NvarChar(30)
declare @cp_size As NvarChar(10)
declare @cp_packing As NvarChar(10)
  相关解决方案