Toon posts:

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

Pagina: 1
Acties:

Onderwerpen


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 00:00
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

  • Redshark
  • Registratie: Mei 2002
  • Laatst online: 03:50
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?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 30-05 14:22

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


  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 30-05 13:08

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!


Anoniem: 205166

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

MSDN: Change Tracking

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 00:00
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 :)

  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 30-05 13:08

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!


  • 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


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee