Vložit CreatedBy a CreatedOn do všech chybějících datových tabulek v SQL
Když navrhujeme Access s řešeními SQL Server, téměř vždy přidáváme CreatedBy a CreatedOn do všech našich tabulek, což našim klientům umožňuje vidět, kdo vytvořil záznamy v rozhraní Access.
Skript pro automatické přidání CreatedBy a CreatedOn do tabulek
Mnohokrát dědíme databáze SQL a potřebujeme rychlý způsob, jak přidat obě pole do všech tabulek v databázi. Za tímto účelem používáme následující skript, který zkontroluje, zda jsou v tabulce přítomny CreatedBy a CreatedOn, a pokud nejsou, přidejte je:
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
Skript čte z tblTablePermissions, což je pouze seznam tabulek SQL Serveru používaných aplikací. Tabulku používáme v naší technice bez DSN.
Jakmile skript spustíte, SQL Server automaticky označí datum a umístí název sítě uživatele do pole CreatedBy, což vám umožní vytvořit analýzu toho, kolik nových záznamů bylo přidáno do databáze a kým v průběhu času.