[MS SQL 2008] verschillen in record voor en na update

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 17:51
Hoi allemaal,

Binnen de applicatie, die ik nu aan het bouwen ben, wil ik bijhouden wat een user gewijzigd heeft in een record.
Echter wil ik dit niet per kolom handmatig uit gaan lopen typen, omdat het een behoorlijk groot datamodel betreft.

Voorbeeld:
code:
1
2
3
4
5
6
7
voor update
record 1 > voornaam: Patrick, achternaam: de B
na update
record 1 > voornaam: Patrick, achternaam: de Bie

loggen in aparte tabel (eventueel stored procedure voor schrijven)
record 1 > achternaam van: de B, achternaam naar: de Bie


Hoe kan ik dit het beste aanpakken? Zijn hier bekende best practices voor?

Technieken die ik gebruik zijn: .NET 4.0, C#, LINQtoSQL, MS SQL2008

Acties:
  • 0 Henk 'm!

  • Redshark
  • Registratie: Mei 2002
  • Laatst online: 12:23
Waarom sla je de wijzigingen in een aparte tabel op? Twee kolommen met een van- en totdatum (eventueel met een derde kolom om de meest recente versie op te halen) lijkt mij logischer?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10-05 12:54

gorgi_19

Kruimeltjes zijn weer op :9

Redshark schreef op dinsdag 14 juni 2011 @ 15:39:
Waarom sla je de wijzigingen in een aparte tabel op? Twee kolommen met een van- en totdatum (eventueel met een derde kolom om de meest recente versie op te halen) lijkt mij logischer?
Aparte tabel kan prima. Versies samen met een changedate lijken me meer voor de hand liggend datn "van tot-datum".

Qua methodiek lijken me triggers hier prima voor geschikt :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 06-05 00:16

Gé Brander

MS SQL Server

http://www.bradmcgehee.co...to-sql-server-2008-audit/
Advantages of SQL Server Audit

SQL Server Audit includes these features and benefits:

The Ability to Audit at the Instance and Database Levels: When you configure an audit, you are given the ability to capture audit events at the instance-level or the database-level. In most cases, you will probably want to audit events at both levels.

The Ability to Audit Many Different Activities: SQL Server Audit includes many predefined activities that you can audit, including DML and DDL activity. In addition, you can even audit “audit activities”. In other words, the activities of DBAs, whose job it is to manage SQL Server Audit, can be monitored by outside parties, if so desired.

The Ability to Capture and View Audit Results: Audit results can be captured and stored in disk files, or in the operating system’s Event Logs. Data on disk can be imported into a database for further analysis and reporting. Data stored in Event Logs can be viewed using the Event Log Viewer.

High Granularity: SELECT, INSERT, UPDATE, DELETE, REFERENCES and EXECUTE statements can be captured for individual users at the object level, if desired.

Fast and Lightweight: SQL Server Audit uses SQL Server 2008′s Extended Events engine to capture audit data. This results in fast performance and minimal overhead as compared to using SQL Trace to capture activity.

Easy to Setup and Administer: SQL Server Audit can be setup and managed using either SSMS (SQL Server Management Studio) or Transact-SQL.


Read more: http://www.bradmcgehee.co...2008-audit/#ixzz1PG8u5KYI
Under Creative Commons License: Attribution
Zelf schrijven kan, maar SQL Server 2008 en verder kan het ook zelf out of the box.

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!


Acties:
  • 0 Henk 'm!

Anoniem: 205166

Je kunt ook Change Tracking gebruiken in SQL Server. Doet wat jij wil!

MSDN: Change Tracking

Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 17:51
Redshark schreef op dinsdag 14 juni 2011 @ 15:39:
Waarom sla je de wijzigingen in een aparte tabel op? Twee kolommen met een van- en totdatum (eventueel met een derde kolom om de meest recente versie op te halen) lijkt mij logischer?
het loggen in een aparte tabel gebeurt puur omdat we wat meer zaken willen loggen als 'datum wijzigingen, wie de wijziging uitgevoerd heeft, IP adres vanaf waar gewijzigd etc. etc.'. Dit willen we niet in dezelfde tabel hebben.

De wijziging van het record gebeurt uiteraard wel in dezelfde tabel.

@ c70070540: thanks, ga ik lezen. Zou mooi zijn als het out of the box kan.
@ detroit: dank je. nog meer interessant voer om te lezen :)

Acties:
  • 0 Henk 'm!

  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 06-05 00:16

Gé Brander

MS SQL Server

pdebie schreef op woensdag 15 juni 2011 @ 09:45:
[...]


het loggen in een aparte tabel gebeurt puur omdat we wat meer zaken willen loggen als 'datum wijzigingen, wie de wijziging uitgevoerd heeft, IP adres vanaf waar gewijzigd etc. etc.'. Dit willen we niet in dezelfde tabel hebben.

De wijziging van het record gebeurt uiteraard wel in dezelfde tabel.

@ c70070540: thanks, ga ik lezen. Zou mooi zijn als het out of the box kan.
@ detroit: dank je. nog meer interessant voer om te lezen :)
Changetracking kan je er voor (mis)bruiken, maar het is niet voor auditing bedoeld. En wat jij wilt is auditing.
Change tracking in SQL Server 2008 enables applications to obtain only changes that have been made to the user tables, along with the information about those changes. With change tracking integrated into SQL Server, complicated custom change tracking solutions no longer have to be developed.

Change tracking is an important building block for applications that synchronize and replicate data in scenarios in which end-to-end replication solutions do not work and a custom solution is required. For example, a scenario that requires synchronizing data with data stores that are not SQL Server databases or in which the store schemas are very different.

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!


Acties:
  • 0 Henk 'm!

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Let er wel op dat Auditing alleen in de Enterprise en DataCenter editions zit. Enterprise is 20K duurder dan Standard...

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1