|
|
|||||||||
|
|||||||||
|
|||||||||
| |
||
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Trouble using fn_get_sql to capture table changes
I created an trigger (on insert and update) on a table that uses the new fn_get_sql function that comes with SQL Server 2000 SP3. I use it to record who performed what transaction and when they did it. It looks like this:
-------------------------------- CREATE TRIGGER Update_Last_Modified ON [dbo].[MYTABLENAME] FOR UPDATE, INSERT AS BEGIN SET NOCOUNT ON DBCC TRACEON (2861) DECLARE @Qry nvarchar(4000) DECLARE @handle binary(20) SELECT @handle = sql_handle FROM master..sysprocesses WHERE spid = @@SPID SET @QRY = (SELECT CONVERT(nvarchar(4000), [text]) FROM ::fn_get_sql(@handle)) UPDATE MYTABLENAME SET DATE_LAST_MODIFIED = GETDATE(), LAST_COMMAND = @QRY, LAST_USER = SYSTEM_USER FROM inserted WHERE MYTABLENAME.UID= Inserted.UID END ---------------------------------- It was previously coded to use DBCC INPUTBUFFER, and it worked fine, but I was limited to the first 255 characters of the command, which prevented me from seeing the critical parts, like the where clause! When I modified the trigger to use fn_get_sql, all I ever see is the entire text of the create trigger command. Maybe I should use an entirely different approach. I'm open to ideas. Thanks very much in advance for your help! Miles |
|
#2
|
|||
|
|||
|
Miles,
I have the same problem with fn_get_sql and I don't have a solution. However, I would like to know how exactly you were able to use DBCC INPUTBUFFER to record the user's last stmt. Thanks. --Mark Last edited by GT3Dev : December 9th, 2003 at 11:44 AM. |
![]() |
| Viewing: ASP Free Forums > Database > Microsoft SQL Server > Trouble using fn_get_sql to capture table changes |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|