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

T-SQL, jak zmodyfikować wartość przed wstawieniem

Zasadniczo za pomocą INSTEAD OF INSERT wyzwalacz, możesz osiągnąć to, czego szukasz - wystarczy odczytać dane z INSERTED pseudotabeli, zmodyfikuj ją i wstaw do tabeli

Twój wyzwalacz będzie wyglądał mniej więcej tak:

CREATE TRIGGER YourTrigger ON dbo.YourTable    
INSTEAD OF INSERT
AS
    SET NOCOUNT ON

    -- do the INSERT based on the INSERTED pseudo table, modify data as needed
    INSERT INTO dbo.YourTable(Col1, Col2, ....., ColN)
      SELECT 
          Col1, 2 * Col2, ....., N * ColN
      FROM 
          INSERTED

Oczywiście można było też dodać np. czeki w postaci WHERE klauzula do tego SELECT .... FROM INSERTED oświadczenie m.in. ignoruj ​​niektóre wiersze - możliwości są nieograniczone!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alias ​​między bazami danych SQL Server

  2. Użyj bcp, aby zaimportować plik csv do sql 2005 lub 2008

  3. Jak dodać grupę plików do bazy danych programu SQL Server (T-SQL)

  4. ROUND() Przykłady w SQL Server

  5. Nieoczekiwany typ zmiennej zwrócony przez Receive-Job