下面是触发的 SQL 的一部分,它使用子查询返回 TableString 列中的值。子查询将返回前两个值和 Fname 的“标记”,但之后什么也没有(甚至分号也没有)。TableString 列是一个 nvarchar,设置为 255 个字符,并在插入或更新期间捕获所有相似数据。
INSERT INTO TransactionLog (TransactionDate, Operator, TableName, Action
, TableString, UserId)
SELECT LastChangeDate
, 'Op'
, @tableName
, @action
, CAST('sNum:' + CAST(sNumber as nvarchar(10)) + ' entType:' + EntityType
+ ' Fname:' + ISNULL(FirstName, 'NULL')
+ ' Lname:' + ISNULL(LastName, 'NULL')
+ ' suff:' + ISNULL(NameSuffix, 'NULL')
+ ' corpName:' + ISNULL(CorporateName, 'NULL' )
+ ' ctrlId:' + ISNULL(CAST(ControlId as nvarchar(3)), 'NULL')
AS nvarchar(30)) as TableString
, LastChangeOperator
FROM deleted
TableString 中的返回值:
sNum:1000024 entType:S Fname