Prev: Figuring sql server version via code
Next: Official document about restoring SQL Server 2000 logs to SQL 2K5
From: susanne.senger on 21 Mar 2010 06:40 Hallo, Newsgroup, ich will mit einem trigger überwachen, ob in einer Tabelle Änderungen vorgenommen wurden.Mit "FOR inserte, update" bekomme ich die Änderungen in eine separate DB-Tabelle geschrieben. Aber wie komme ich an die deleted? Mein Problem ist, dass ich nicht ausschließlich auf die deleted-Tabelle zugreifen kann, zumindest ist es mir nicht gelungen, wegen dieser Fehlermeldung: "text-, ntext- oder image-Spalten können in den eingefügten und gelöschten Tabellen nicht verwendet werden." Und über ein inner join auf die Ausgangstabelle komme ich natürlich auch nicht weiter, weil ja der DS dann schon gelöscht ist, d. h. die Infos in der Ausgangstabelle nicht mehr vorhanden sind. Wenn ich einen INSTEAD Trigger verwende, kriege ich die gelöschten DS weggeschrieben und kann auch die Records tatsächlich aus der Tabelle entfernen lassen, aber wie kriege ich die Inserted-Werte tatsächlich geschrieben? Danke schon mal! Gruß aus München Susanne
From: susanne.senger on 21 Mar 2010 07:25 On 21 Mrz., 11:40, "susanne.sen...(a)gmail.com" <susanne.sen...(a)gmail.com> wrote: > Hallo, Newsgroup, > > ich will mit einem trigger überwachen, ob in einer Tabelle Änderungen > vorgenommen wurden.Mit "FOR inserte, update" bekomme ich die > Änderungen in eine separate DB-Tabelle geschrieben. Aber wie komme ich > an die deleted? Mein Problem ist, dass ich nicht ausschließlich auf > die deleted-Tabelle zugreifen kann, zumindest ist es mir nicht > gelungen, wegen dieser Fehlermeldung: > "text-, ntext- oder image-Spalten können in den eingefügten und > gelöschten Tabellen nicht verwendet werden." > Und über ein inner join auf die Ausgangstabelle komme ich natürlich > auch nicht weiter, weil ja der DS dann schon gelöscht ist, d. h. die > Infos in der Ausgangstabelle nicht mehr vorhanden sind. > > Wenn ich einen INSTEAD Trigger verwende, kriege ich die gelöschten DS > weggeschrieben und kann auch die Records tatsächlich aus der Tabelle > entfernen lassen, aber wie kriege ich die Inserted-Werte tatsächlich > geschrieben? > > Danke schon mal! > > Gruß aus München > Susanne Kommando zurück, plötzlich funzt es - ich weiß nur nicht, was ich eigentlich geändert habe :-(
From: John Bell on 21 Mar 2010 08:01
On Sun, 21 Mar 2010 04:25:04 -0700 (PDT), "susanne.senger(a)gmail.com" <susanne.senger(a)gmail.com> wrote: >On 21 Mrz., 11:40, "susanne.sen...(a)gmail.com" ><susanne.sen...(a)gmail.com> wrote: >> Hallo, Newsgroup, >> >> ich will mit einem trigger �berwachen, ob in einer Tabelle �nderungen >> vorgenommen wurden.Mit "FOR inserte, update" bekomme ich die >> �nderungen in eine separate DB-Tabelle geschrieben. Aber wie komme ich >> an die deleted? Mein Problem ist, dass ich nicht ausschlie�lich auf >> die deleted-Tabelle zugreifen kann, zumindest ist es mir nicht >> gelungen, wegen dieser Fehlermeldung: >> "text-, ntext- oder image-Spalten k�nnen in den eingef�gten und >> gel�schten Tabellen nicht verwendet werden." >> Und �ber ein inner join auf die Ausgangstabelle komme ich nat�rlich >> auch nicht weiter, weil ja der DS dann schon gel�scht ist, d. h. die >> Infos in der Ausgangstabelle nicht mehr vorhanden sind. >> >> Wenn ich einen INSTEAD Trigger verwende, kriege ich die gel�schten DS >> weggeschrieben und kann auch die Records tats�chlich aus der Tabelle >> entfernen lassen, aber wie kriege ich die Inserted-Werte tats�chlich >> geschrieben? >> >> Danke schon mal! >> >> Gru� aus M�nchen >> Susanne > >Kommando zur�ck, pl�tzlich funzt es - ich wei� nur nicht, was ich >eigentlich ge�ndert habe :-( Susanne http://msdn.microsoft.com/en-us/library/ms191300.aspx describes the inserted and deleted tables which can be used in a trigger. It also descibes the error you are seeing, so unless you change the structure of the tables or the trigger the error is going to occur. John |