webForumDet fria alternativet

Få ut alla påverkade poster vid Update

Databaser & SQL

7 svar · 651 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

Hej,

Kan man få ut alla poster som påverkas vid en update på något bra sätt?

Och kan man få ut en textfil på posterna?

:)

(MSSQL 2005)

Mvh
Henrik

Medlem sedan juni 200032 967 inlägg
#2

Jag hade gjort en trigger som sparar undan de ändrade posterna någonstans - sedan kan du ju göra precis vad du vill. :)

Medlem sedan jan. 20013 582 inlägg
#3

Aha!

Det låter ju smart. :)

Jag kom så här långt iaf:


create trigger a_Insert
on tblTask
for update as
if update(CustomT2)
begin

end

Men hur skriver man den uppdaterade posten till en annan tabell?

Mvh
Henrik

(Finns det inga [SQL]...[/SQL]-taggar?)

Medlem sedan juni 200032 967 inlägg
#4

typ

insert into min_fjukiga_tabell (taskid)
select taskid from inserted

Vad menar du med din if-sats?

Medlem sedan jan. 20013 582 inlägg
#5

@nders skrev:

Vad menar du med din if-sats?

Ja, jag menar väl inte så mycket... Håller precis på att lära mig triggers... Jag hittade något exempel någonstans... :)

Devguru skrev:

CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
    {
       { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
       [ WITH APPEND ]
       [ NOT FOR REPLICATION ]
       AS
       [
          {
             IF UPDATE ( column )
                [ { AND | OR } UPDATE ( column ) ... ]
             |
           &nbs

Något sånt härnt?

CREATE TRIGGER a_Insert
ON tblTask
FOR UPDATE
AS
IF UPDATE(CustomT2)
BEGIN
DECLARE @TaskNo VARCHAR(32)
DECLARE @TaskId Int
SELECT @TaskNo =(SELECT TaskNr FROM INSERTED)
SELECT @TaskId =(SELECT [Id] FROM INSERTED)
INSERT INTO a_tblTaskAreaChange (TaskId, TaskNr)
VALUES (@TaskId, @TaskNo)
END

Mvh
Henrik

Medlem sedan juni 200032 967 inlägg
#6

Det räcker nog med (mellan begin och end alltså):

insert into foo (taskid, tasknr)
select tasknr, id from inserted

funkar inte det?

Medlem sedan jan. 20013 582 inlägg
#7

Jo

CREATE TRIGGER a_Insert
ON tblTask
FOR UPDATE
AS
IF UPDATE(CustomT2)
BEGIN
INSERT INTO a_tblTaskAreaChange (TaskId, TaskNr)
SELECT Id, taskNr FROM inserted
END

:)

Mvh
Henrik

Medlem sedan jan. 20013 582 inlägg
#8

Trigger löste problemet! :)

Mvh
Henrik

263 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)