我正在尝试确定是否可以在T-SQL触发器的更新函数中使用动态列名。
在我的表中,我有一个列,“Last_Name”。触发器内部我能够评估
update(Last_Name)
但我无法评估
DECLARE @colName VARCHAR(25)
SET @colName = 'Last_Name'
update(@colName)
有没有办法让SQL Server识别此触发器中更新函数的动态列名?
更新
在触发器定义中,我尝试了
DECLARE @dynamicSQL NVARCHAR(MAX)
SET @dynamicSQL = 'IF(update(' + @colName + '))
BEGIN
PRINT ''okay-' + @colName + '''
END'
exec(@dynamicSQL);
但收到以下错误:
只能在CREATE TRIGGER语句中使用IF UPDATE。
看起来“exec”语句正在评估触发器本身之外的动态SQL。