sql >> Databáze >  >> RDS >> Access

Vložte CreatedBy a CreatedOn do všech chybějících datových tabulek v SQL

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.


  1. Jak se připojím k PostgreSQL bez zadání názvu databáze?

  2. Mountain Lion Postgres se nemohl připojit

  3. Vytvoření databázového poštovního účtu v SQL Server (T-SQL)

  4. Dotaz na kontingenční tabulku MySQL s dynamickými sloupci