sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server En utlösare för att fungera på infogning av flera rader

Du behöver bara öppna en markör på INSERTED och iterera den för @PROC_NEWNUM1 och sätta resten av koden i slingan. t.ex.

 DECLARE @PROC_NEWNUM1 VARCHAR (10)
 DECLARE @NEWNUM2 numeric(20)
 DECLARE my_Cursor CURSOR FOR SELECT num1 FROM INSERTED; 
 OPEN my_Cursor; 

 FETCH NEXT FROM @PROC_NEWNUM1; 


 WHILE @@FETCH_STATUS = 0 
 BEGIN FETCH NEXT FROM my_Cursor 
 select @NEWNUM2 = MAX(num2) from TEST
 if @NEWNUM2 is null
 Begin
  set  @NEWNUM2  = 0
 end
 set @NEWNUM2 = @NEWNUM2 + 1
 UPDATE TEST SET num2 = @NEWNUM2 WHERE num1 = @PROC_NEWNUM1

 END; 

CLOSE my_Cursor; DEALLOCATE my_Cursor;


  1. pyodbc - mycket långsam bulkinserthastighet

  2. MySQL - Använder COUNT(*) i WHERE-satsen

  3. Vilken är den perfekta verktygslådan för PL/SQL-utveckling?

  4. Hur man använder EXISTS Logical Operator i SQL Server - SQL Server / TSQL Tutorial Del 125