Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cần một cột ngày giờ trong SQL Server tự động cập nhật khi bản ghi được sửa đổi

SQL Server không có cách nào để xác định giá trị mặc định cho UPDATE .

Vì vậy, bạn cần thêm một cột có giá trị mặc định để chèn:

ADD modstamp DATETIME2 NULL DEFAULT GETDATE()

Và thêm trình kích hoạt trên bảng đó:

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

Và có, bạn cần chỉ định một cột nhận dạng cho mỗi trình kích hoạt.

THẬN TRỌNG:hãy cẩn thận khi chèn các cột trên bảng mà bạn không biết mã của ứng dụng. Nếu ứng dụng của bạn có lệnh INSERT VALUES mà không có định nghĩa cột, nó sẽ gây ra lỗi ngay cả với giá trị mặc định trên các cột mới.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để bạn mở tệp SDF (SQL Server Compact Edition)?

  2. Tạo mặt nạ dữ liệu động trong SQL Server cho người mới bắt đầu

  3. Một thay đổi quan trọng đối với Sự kiện mở rộng trong SQL Server 2012

  4. Các cải tiến tempdb trong SQL Server 2019

  5. Chương trình dòng lệnh hoặc tập lệnh đơn giản để sao lưu cơ sở dữ liệu máy chủ SQL là gì?