![]() |
#3 |
Участник
|
Если посмотреть на код триггера
X++: AND ( UPDATE(KnownAs) OR UPDATE(Name) OR UPDATE(NV_ParentCompany) ) X++: IF (@spLogType = 3 AND ( UPDATE(KnownAs) OR UPDATE(Name) OR UPDATE(NV_ParentCompany) ) ) --Update BEGIN INSERT INTO SYSDATABASELOG (NEWDATA, LOGRECID, LOGTYPE, TABLE_, DESCRIPTION, USERNAME, CREATEDBY, CREATEDTRANSACTIONID, DATAAREAID, PARTITION, SEQUENCENUMBER) SELECT '03::' + + 'KnownAs' + ', ÿþ ' + I.KNOWNAS + ' ÿþ ' + D.KNOWNAS + ' ÿþ ' + 'Name' + ', ÿþ ' + I.NAME + ' ÿþ ' + D.NAME + ' ÿþ ' + 'NV_ParentCompany' + ', ÿþ ' + CONVERT(nvarchar(max), I.NV_PARENTCOMPANY) + ' ÿþ ' + CONVERT(nvarchar(max), D.NV_PARENTCOMPANY) + ' ÿþ ' + 'CreatedBy' + ', ÿþ ' + I.CREATEDBY + ' ÿþ ' + D.CREATEDBY + ' ÿþ ' + 'CreatedDateTime' + ', ÿþ ' + CONVERT(nvarchar(max), I.CREATEDDATETIME) + ' ÿþ ' + CONVERT(nvarchar(max), D.CREATEDDATETIME) + ' ÿþ ' + 'ModifiedBy' + ', ÿþ ' + I.MODIFIEDBY + ' ÿþ ' + D.MODIFIEDBY + ' ÿþ ' + 'ModifiedDateTime' + ', ÿþ ' + CONVERT(nvarchar(max), I.MODIFIEDDATETIME) + ' ÿþ ' + CONVERT(nvarchar(max), D.MODIFIEDDATETIME) + ' ÿþ ' + 'Partition' + ', ÿþ ' + CONVERT(nvarchar(max), I.PARTITION) + ' ÿþ ' + CONVERT(nvarchar(max), D.PARTITION) + ' ÿþ ' + 'RecId' + ', ÿþ ' + CONVERT(nvarchar(max), I.RECID) + ' ÿþ ' + CONVERT(nvarchar(max), D.RECID) + ' ÿþ ' + 'RecVersion' + ', ÿþ ' + CONVERT(nvarchar(max), I.RECVERSION) + ' ÿþ ' + CONVERT(nvarchar(max), D.RECVERSION) + ' ÿþ ' , I.RECID, 2, 1268,I.PARTYNUMBER + ',' + I.NAME,@userId, @userId, 0, 'dat', I.PARTITION, @seqNo FROM INSERTED I LEFT OUTER JOIN DELETED D ON I.RECID = D.RECID; END; Я в свое время словил в этом триггере ошибку, когда строка логирования обрезалась 1000-ю символами, предложил вариант с добавлением CONVERT(nvarchar(max) ..) - пофиксили оперативно. |
|
|
За это сообщение автора поблагодарили: sukhanchik (8). |
|
|