Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server Wyzwalacz do pracy z wstawianiem wielu wierszy

Musisz tylko otworzyć kursor na INSERTED i powtórzyć go dla @PROC_NEWNUM1 i umieścić resztę kodu w tej pętli. np.

 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Utwórz datę z dnia, miesiąca i roku za pomocą T-SQL

  2. Co oznacza ORDER BY (WYBIERZ NULL)?

  3. JDBC SQLServerException:Ten sterownik nie jest skonfigurowany do zintegrowanego uwierzytelniania.

  4. Przestawiaj wiele kolumn na podstawie jednej kolumny w SQL Server

  5. Jak ustawić opcję maxrecursion dla CTE wewnątrz funkcji Table-Valued-Function?