我有一个脚本触发插入审计表,如果任何更新发生在T_Referral表,我使用的是解密函数来解密列的一个数据。 我在扳机的代码是:
DECLARE @Sql_Insert nvarchar(max)
SET @Sql_Insert = ''
SET @Sql_Insert='INSERT INTO [Logg].AuditLogData(TableName, ColumnName, OldValue, OldValue_Decode, NewValue, NewValue_Decode, AuditSubCategoryID,[GuID])
select TableName, ColumnName, OldValue_Decode, case when ColumnName = ''BookingUserReferenceValue'' then utl.sfDecrypt(NewValue,0) Else NewValue end, NewValue_Decode, AuditSubCategoryID,[GuID] from #AuditLogData
where ISNULL(OldValue,'') != ISNULL([NewValue],'')'
exec utl.uspOpenOrCloseEncryptionKey 'open'
exec(@Sql_Insert )
exec utl.uspOpenOrCloseEncryptionKey 'close'
我的更新脚本
Update RTS.T_Referral
set BookingUserReferenceValue = cast ('John Wayne' as varbinary(256))
where ReferralId = 20
我更新记录John Wayne
在VARBINARY T_Referral
表(记录类似于0x4A6F686E205761796E65
),当更新触发器被调用时会加载那个纪录约翰·韦恩在审计表。 当记录插入BookingUserReferenceValue它将被加密。 柱BookingUserReferenceValue的数据类型是varbinary(256)。 当我尝试更新该列中我得到错误的记录:
在上下文中指定非布尔型,其中一个条件是预期的,邻近“)”的表达式。
任何想法什么错? 谢谢