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

Potřebujete sloupec datetime na serveru SQL Server, který se automaticky aktualizuje při změně záznamu

SQL Server nemá způsob, jak definovat výchozí hodnotu pro UPDATE .

Musíte tedy přidat sloupec s výchozí hodnotou pro vložení:

ADD modstamp DATETIME2 NULL DEFAULT GETDATE()

A přidejte na ten stůl spouštěč:

CREATE TRIGGER tgr_modstamp
ON **TABLENAME**
AFTER UPDATE AS
  UPDATE **TABLENAME**
  SET ModStamp = GETDATE()
  WHERE **ID** IN (SELECT DISTINCT **ID** FROM Inserted)

A ano, musíte zadat sloupec identity pro každý spouštěč.

POZOR:buďte opatrní při vkládání sloupců do tabulek, kde neznáte kód aplikace. Pokud má vaše aplikace příkaz INSERT VALUES bez definice sloupce, vyvolá chyby i s výchozí hodnotou v nových sloupcích.



  1. Zkombinujte dotazy vnořené smyčky s výsledkem nadřazeného pole - pg-promise

  2. Výhody používání šablon Microsoft Access

  3. psql:FATAL:Ověření identity pro uživatele postgres selhalo

  4. Funkce SQL Row_Number() v klauzuli Where