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

Chèn CreatedBy và CreatedOn trong Bất kỳ Bảng Dữ liệu Thiếu nào trong SQL

Chèn CreatedBy và CreatedOn vào Bất kỳ Bảng Dữ liệu Thiếu nào trong SQL

Khi chúng tôi thiết kế Access với các giải pháp SQL Server, chúng tôi hầu như luôn thêm CreatedBy và CreatedOn vào tất cả các bảng của mình, cho phép khách hàng của chúng tôi xem ai đã tạo bản ghi trong giao diện người dùng Access.

Tập lệnh để thêm CreatedBy và CreatedOn Tự động vào bảng

Nhiều khi chúng ta kế thừa cơ sở dữ liệu SQL và chúng ta cần một cách nhanh chóng để thêm cả hai trường vào tất cả các bảng trong cơ sở dữ liệu. Để làm được điều đó, chúng tôi sử dụng tập lệnh sau sẽ kiểm tra xem CreatedBy và CreatedOn có trong bảng hay không và nếu không, hãy thêm chúng vào:
DECLARE @ROWID Int
DECLARE @SQLExecute Varchar(max)
DECLARE @Table_Name VARCHAR(Max)
DECLARE @Qty Int
SET @rowid = 0
SET @Table_Name = ''
DECLARE grant_tbl_cursor CURSOR FOR
SELECT  Table_Name
FROM tblTablePermissions
OPEN grant_tbl_cursor
FETCH NEXT FROM grant_tbl_cursor
INTO @Table_Name
WHILE @@FETCH_STATUS = 0
BEGIN
IF COL_LENGTH(@Table_Name, 'CreatedOn') IS NULL
BEGIN
/*Column does not exist or caller does not have permission to view the object*/
select @sqlExecute = 'alter table [' + @Table_Name + '] add CreatedOn DateTime2(0) DEFAULT CURRENT_TIMESTAMP NULL' 
PRINT @SQLExecute
EXECUTE( @sqlExecute)
END
IF COL_LENGTH(@Table_Name, 'CreatedBy') IS NULL
BEGIN
select @sqlExecute = 'alter table [' + @Table_Name + '] add CreatedBy Varchar(25) DEFAULT suser_sname() NULL' 
EXECUTE( @sqlExecute)
End
FETCH NEXT FROM grant_tbl_cursor
INTO @Table_Name
END
CLOSE grant_tbl_cursor
DEALLOCATE grant_tbl_cursor

Tập lệnh đang đọc từ tblTablePermissions, đây chỉ là danh sách các bảng SQL Server được ứng dụng sử dụng. Chúng tôi sử dụng bảng trong kỹ thuật DSNless của mình.

Khi bạn đã thực thi tập lệnh, SQL Server sẽ tự động đóng dấu ngày tháng và đặt tên mạng của người dùng trong trường CreatedBy, cho phép bạn tạo phân tích về số lượng bản ghi mới đã được thêm vào cơ sở dữ liệu và theo thời gian.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cơ sở dữ liệu quan hệ và không quan hệ:Sự khác biệt là gì?

  2. 5 lý do tại sao bạn cần một cơ sở dữ liệu tốt

  3. Mẹo về Bảng Microsoft Access - Thủ thuật &Nguyên tắc Phần III

  4. Các kiểu quan hệ bảng trong MS Access

  5. Cách nhóm báo cáo theo nhiều trường trong Access 2016