Sisipkan CreatedBy dan CreatedOn di Tabel Data yang Hilang di SQL
Saat mendesain Access dengan solusi SQL Server, kami hampir selalu menambahkan CreatedBy dan CreatedOn ke semua tabel kami, memungkinkan klien kami untuk melihat siapa yang membuat rekaman di frontend Access.
Script untuk menambahkan CreatedBy dan CreatedOn Secara Otomatis ke tabel
Sering kali kita mewarisi database SQL dan kita membutuhkan cara cepat untuk menambahkan kedua bidang ke semua tabel dalam database. Untuk itu kami menggunakan skrip berikut akan memeriksa apakah CreatedBy dan CreatedOn ada dalam tabel dan jika tidak, tambahkan mereka:
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
Script membaca dari tblTablePermissions yang hanya merupakan daftar tabel SQL Server yang digunakan oleh aplikasi. Kami menggunakan tabel dalam teknik DSNless kami.
Setelah Anda menjalankan skrip, SQL Server akan secara otomatis memberi cap tanggal dan menempatkan nama jaringan pengguna di bidang CreatedBy, memungkinkan Anda membuat analisis tentang berapa banyak catatan baru yang ditambahkan ke database dan oleh siapa dari waktu ke waktu.