Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Refer to Column by position in a trigger
Message
From
10/07/2001 10:22:56
 
 
To
All
General information
Forum:
Microsoft SQL Server
Category:
Stored procedures, Triggers, UDFs
Title:
Refer to Column by position in a trigger
Miscellaneous
Thread ID:
00528593
Message ID:
00528593
Views:
41
I have this portion of a trigger:
IF UPDATE("KEY1") 
BEGIN
	INSERT INTO PDMLOG (USERNAME,TABLENAME,FIELDNAME,NEWVALUE,
		OLDVALUE,UPDATETYPE,UPDATEDATE,ID) 
	SELECT 
		USER_NAME(),'STYLES','KEY1',i.key1,d.key1,@op
		,GETDATE(),i.pk_recno 
		FROM inserted i LEFT OUTER JOIN deleted d
		ON i.pk_recno=d.pk_recno
END

IF UPDATE("KEY2") 
BEGIN
	INSERT INTO PDMLOG (USERNAME,TABLENAME,FIELDNAME,NEWVALUE,
		OLDVALUE,UPDATETYPE,UPDATEDATE,ID) 
	SELECT 
		USER_NAME(),'STYLES','KEY2',i.key2,d.key2,@op
		,GETDATE(),i.pk_recno 
		FROM inserted i LEFT OUTER JOIN deleted d
		ON i.pk_recno=d.pk_recno
END
...

It continues on with a list of a bunch of columns..

What I would like to do is be able to loop through the columns in this
table so that it doesn't matter of column names change and also so the trigger
can be used on other tables is there a way to do something like:
FOR i=1 to ColumnCount
IF UPDATE(column(i)) 
BEGIN

	INSERT INTO PDMLOG (USERNAME,TABLENAME,FIELDNAME,NEWVALUE,
		OLDVALUE,UPDATETYPE,UPDATEDATE,ID) 
	SELECT 
		USER_NAME(),'STYLES',column(i).value,i.column(i),d.column(i),@op
		,GETDATE(),i.pk_recno 
		FROM inserted i LEFT OUTER JOIN deleted d
		ON i.pk_recno=d.pk_recno
END
ENDFOR
Sooooo. Is there some way that you can refer to the column by it's ordinal.
If you get the idea...

Thanks
Next
Reply
Map
View

Click here to load this message in the networking platform