Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server - след вмъкване/ за вмъкване - връщане назад

Вашият INSERT винаги се изпълнява в транзакция - или сте дефинирали изрично такава, или ако не, тогава SQL Server ще използва имплицитна транзакция.

Вмъквате един (или няколко) реда в таблицата си. След това - все още вътре в транзакцията - AFTER INSERT тригерът се изпълнява и проверява определени условия - обикновено използвайки Inserted псевдо таблица, налична вътре в тригера, която съдържа редовете, които са били вмъкнати.

Ако извикате ROLLBACK TRANSACTION във вашия тригер, тогава да - вашата транзакция, с всичко, което е правила, е отменена и сякаш този INSERT никога не се е случвало - нищо не се показва в таблицата на вашата база данни.

Също така:FOR INSERT е същото като AFTER INSERT в SQL Server - тригерът се изпълнява след INSERT изявлението си свърши работата.

Едно нещо, което трябва да имате предвид (което много програмисти грешат):тригерът се задейства веднъж на израз -НЕ веднъж на ред! Така че, ако вмъкнете 20 реда наведнъж, тригерът се задейства веднъж и Inserted псевдо таблицата вътре в тригера съдържа 20 реда. Трябва да вземете това предвид, когато пишете тригера - вие не несте винаги има работа само с вмъкване на един ред!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. незадължителни параметри в съхранената процедура на SQL Server?

  2. Генерирайте диаграма на връзката на таблицата от съществуваща схема (SQL Server)

  3. Достъпът е отказан при вмъкване на файл в Sql Server 2012 FileTable с помощта на File.CreateFile в уебсайта на ASP.NET

  4. Как мога да определя в SQL Server дали диапазон дата и време се припокрива с друг

  5. SQL:Изберете динамично име на колона въз основа на променлива