sql >> Databáze >  >> RDS >> Sqlserver

Spouštěcí smyčka serveru SQL Server

Nedoporučuji výslovně deaktivovat spouštěč během zpracování – může to způsobit podivné vedlejší účinky.

Nejspolehlivějším způsobem, jak zjistit (a zabránit) cyklům ve spouštěči, je použít CONTEXT_INFO() .

Příklad:

CREATE TRIGGER tr_Table1_Update
ON Table1
FOR UPDATE AS

DECLARE @ctx VARBINARY(128) 
SELECT @ctx = CONTEXT_INFO() 
IF @ctx = 0xFF
    RETURN

SET @ctx = 0xFF

-- Trigger logic goes here

Viz tento odkaz pro podrobnější příklad.

Poznámka k CONTEXT_INFO() v SQL Server 2000:

Kontextové informace jsou podporovány, ale zjevně CONTEXT_INFO funkce není. Místo toho musíte použít toto:

SELECT @ctx = context_info
FROM master.dbo.sysprocesses
WHERE spid = @@SPID


  1. Alias ​​MySQL pro sloupce SELECT *

  2. Jak změnit database_url na heroku?

  3. Jak odstranit jeden soubor z úložiště médií?

  4. Použití PHPExcel k automatickému vytváření souborů Excel