Firing trigger for bulk insert

后端 未结 3 1293
一生所求
一生所求 2021-01-05 02:23
ALTER TRIGGER [dbo].[TR_O_SALESMAN_INS]
   ON  [dbo].[O_SALESMAN]
   AFTER INSERT
AS 
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- inte         


        
3条回答
  •  执笔经年
    2021-01-05 02:29

    you can use a cursor as follows:

    create trigger trg_insertstuff
    on [O_SALESMAN]
    after insert
    as
    
      DECLARE @SLSMAN_CD NVARCHAR(20)
        DECLARE @SLSMAN_NAME NVARCHAR(20)
    
    
     declare db_cursor CURSOR FOR  
    SELECT SLSMAN_CD, SLSMAN_NAME
    from inserted
    
    OPEN db_cursor  
    FETCH NEXT FROM db_cursor INTO @SLSMAN_CD , @SLSMAN_NAME 
    
    WHILE @@FETCH_STATUS = 0  
    BEGIN  
    
    IF NOT EXISTS(SELECT * FROM O_SALESMAN_USER WHERE SLSMAN_CD = @SLSMAN_CD)
        BEGIN
            INSERT INTO O_SALESMAN_USER(SLSMAN_CD, PASSWORD, USER_CD)
            VALUES(@SLSMAN_CD, @SLSMAN_CD,@SLSMAN_NAME )
        END
    
    
    FETCH NEXT FROM db_cursor INTO  @SLSMAN_CD , @SLSMAN_NAME 
    end
    
    CLOSE db_cursor  
    DEALLOCATE db_cursor
    

提交回复
热议问题