아래는 하위 쿼리를 사용하여 TableString 열을 반환하는 트리거 된 SQL의 일부입니다. 하위 쿼리는 처음 두 값과 Fname에 대한 "마커"를 반환하지만 이후에는 아무 것도 표시하지 않습니다 (세미콜론도 아님). TableString 열은 255 자로 설정되고 삽입 또는 업데이트 중에 모든 유사한 데이터를 캡처하는 nvarchar입니다. TableString에서SQL 하위 쿼리의 ISNULL이 아무 것도 반환하지 않습니다.
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
반환 값 :
sNum:1000024 entType:S Fname
정말 TableString을 nvarchar (max) 필드로 지정해야합니다. – TheGeekYouNeed