?
Solved

Can I read the transaction log?

Posted on 2003-11-18
10
Medium Priority
?
535 Views
Last Modified: 2008-03-10
I want to know what changes makes a program to a database.
I don't know what tables may be affected, or if it's updating, deleting or inserting records in one or more tables.
So I can do 2 things:
Compare the whole database "before" and "now"
Read the transactions that where inserted in the transaction log

I think the second solution might be easier, because the database is quite big...

So, how can I do it (step by step)?
0
Comment
Question by:Chofo
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
10 Comments
 
LVL 34

Accepted Solution

by:
arbert earned 2000 total points
ID: 9774580
Nope, you really can't read the transaction log in a meaningful manner.  HOWEVER, there are a couple of third party products that will read the log for you.  LogExplorer http://www.lumigent.com   and NetIQ also has a product http://www.netiq.com.

If you really need to capture "audit track" type information, you'll almost have to add triggers to the table and insert the before and after changes into another table.

Brett
0
 

Author Comment

by:Chofo
ID: 9779409
Brett: thank you for your answer, it's good to know which are all the different approaches to the subject

I've just downloaded a free trial, and I'm also developing some triggers to find out which tables change...
but I don't know how to learn what changed in the table without having to compare the whole table "before" and "after".
For instance, if the "delete" triggers, how do I know which record was deleted?
Is there a shortcut?
0
 
LVL 34

Expert Comment

by:arbert
ID: 9779868
Basically, if you have good primary keys on your table, you will know what record was updated, deleted, or inserted.


Here are a couple of useful links on auditing:

http://www.sql-server-performance.com/auto_audit_2_spotlight.asp
http://www.nigelrivett.net/AuditTrailTrigger.html


Brett
0
Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

 

Author Comment

by:Chofo
ID: 9781598
Brett:
I don't quite agree with your statement about primary keys, updates will tend to be next to the bottom, but that's not necessary...

Thanks for the links...

Chofo
0
 
LVL 34

Expert Comment

by:arbert
ID: 9782261
"next to the bottom"  what do you mean?  If the table has a primary key on it, you know EXACTLY what record was affected by an operation..........
0
 

Author Comment

by:Chofo
ID: 9782588
But... how do you know the ID of the record updated?
I can get if it was an update, delete or insert;  but how do I know the ID of the primary key?
0
 
LVL 34

Expert Comment

by:arbert
ID: 9782816
What do you mean the "ID of the primary key"?  If you know the primary key, that is the exact key that is needed to find a record in the database.....
0
 

Author Comment

by:Chofo
ID: 9783123
OK, ID, primary key, it's the same to me.   How do you know which was the record affected by the table update, delete or insert?   Is it there an SQL variable containing the primary key of the last record updated, deleted or inserted?  What's its name?   How do I get the value?
Or else, can I get the "SQL string" executed over the table?
0
 
LVL 34

Expert Comment

by:arbert
ID: 9783251
Nope, you have to know the primary key.  If you're coding the trigger or stored proc, I would hope that you know what it is.

As far as getting the SQL string that executed, the only way to do that (right now anyway) is with profiler.  When you try and get the sql from within a trigger (fn_get_sql) it returns the actual code of the trigger (thanks microsoft)....
0
 

Author Comment

by:Chofo
ID: 9783580
OK, thank you very much!
You've been really helpful...

Chofo
0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
In the first part of this tutorial we will cover the prerequisites for installing SQL Server vNext on Linux.
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function
Suggested Courses

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question