Access
 sql >> Datenbank >  >> RDS >> Access

Fügen Sie CreatedBy und CreatedOn in alle fehlenden Datentabellen in SQL ein

CreateBy und CreatedOn in allen fehlenden Datentabellen in SQL einfügen

Wenn wir Access mit SQL Server-Lösungen entwerfen, fügen wir fast immer CreatedBy und CreatedOn zu allen unseren Tabellen hinzu, damit unsere Kunden sehen können, wer Datensätze im Access-Frontend erstellt hat.

Skript zum automatischen Hinzufügen von CreatedBy und CreatedOn zu Tabellen

Oft erben wir SQL-Datenbanken und brauchen eine schnelle Möglichkeit, beide Felder zu allen Tabellen in der Datenbank hinzuzufügen. Zu diesem Zweck verwenden wir das folgende Skript, um zu prüfen, ob CreatedBy und CreatedOn in der Tabelle vorhanden sind, und falls nicht, fügen Sie sie hinzu:
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

Das Skript liest aus tblTablePermissions, bei dem es sich lediglich um eine Liste von SQL Server-Tabellen handelt, die von der Anwendung verwendet werden. Wir verwenden die Tabelle in unserer DSNless-Technik.

Sobald Sie das Skript ausgeführt haben, wird SQL Server automatisch einen Datumsstempel erstellen und den Netzwerknamen des Benutzers in das Feld „Erstellt von“ einfügen, sodass Sie eine Analyse darüber erstellen können, wie viele neue Datensätze der Datenbank hinzugefügt wurden und von wem im Laufe der Zeit.