Вмъкнете CreatedBy и CreatedOn във всички липсващи таблици с данни в SQL
Когато проектираме Access с решения на SQL Server, ние почти винаги добавяме CreatedBy и CreatedOn към всички наши таблици, което позволява на нашите клиенти да видят кой е създал записи във интерфейса на Access.
Скрипт за автоматично добавяне на CreatedBy и CreatedOn към таблици
Много пъти ние наследяваме SQL бази данни и се нуждаем от бърз начин да добавим и двете полета към всички таблици в базата данни. За тази цел използваме следния скрипт, който ще провери дали CreatedBy и CreatedOn присъстват в таблицата и ако не са, добавете ги:
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
Скриптът чете от tblTablePermissions, което е просто списък с таблици на SQL Server, използвани от приложението. Използваме таблицата в нашата техника без DSN.
След като изпълните скрипта, SQL Server автоматично ще маркира дата и ще постави името на мрежата на потребителя в полето CreatedBy, което ви позволява да създадете анализ за това колко нови записи са били добавени към базата данни и от кого с течение на времето.