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

Làm cách nào để thêm cột được tạo và "sửa đổi lần cuối" trong bảng SQL Server?

created cột rất đơn giản - chỉ là DATETIME2(3) với một ràng buộc mặc định được đặt khi một hàng mới được chèn vào:

Created DATETIME2(3) 
   CONSTRAINT DF_YourTable_Created DEFAULT (SYSDATETIME())

Vì vậy, khi bạn chèn một hàng vào YourTable và không chỉ định giá trị cho Created , nó sẽ được đặt thành ngày và giờ hiện tại.

modified là công việc nhiều hơn một chút, vì bạn sẽ cần phải viết trình kích hoạt cho AFTER UPDATE và cập nhật nó - bạn không thể khai báo SQL Server làm việc này cho bạn ....

Modified DATETIME2(3)

và sau đó

CREATE TRIGGER updateModified
ON dbo.YourTable
AFTER UPDATE 
AS
   UPDATE dbo.YourTable
   SET modified = SYSDATETIME()
   FROM Inserted i
   WHERE dbo.YourTable.PrimaryKey = i.PrimaryKey

Bạn cần tham gia Inserted bảng giả chứa tất cả các hàng đã được cập nhật với bảng cơ sở của bạn trên khóa chính của bạn cho bảng đó.

Và bạn sẽ phải tạo AFTER UPDATE này kích hoạt cho mỗi bảng mà bạn muốn modified cột trong.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng tổng hợp SQL Server với nhiều cột tổng hợp

  2. Hoạt động xung quanh hỗ trợ Con trỏ không phải là một tính năng được triển khai cho SQL Server Parallel DataWarehousing TDS error

  3. CROSS JOIN so với INNER JOIN trong SQL

  4. Các truy vấn không đồng nhất yêu cầu các tùy chọn ANSI_NULLS và ANSI_WARNINGS được đặt cho kết nối. Điều này đảm bảo ngữ nghĩa truy vấn nhất quán

  5. Đổi tên cột SQL Server 2008