2014-12-11 2 views
0

Я пытаюсь написать SQL-запрос, который отслеживает изменения в таблице с помощью CHANGE TRACKING. Мой запрос работает до такой степени, что я хочу, чтобы он также отслеживал, какие столбцы были изменены.Изменение отслеживания в SQL: значение NULL при использовании COLUMNPROPERY

Я получаю значение null на COLUMNPROPERTY, которое, как я подозреваю, означает, что у меня нет правильных разрешений. Это первый случай, когда я попытался выполнить такой тип запросов, поэтому буду признателен за любые рекомендации о том, где я ошибся.

Большое спасибо

Джоди

SELECT 
CT.TableCalendar, 
P.txtDescription, CHANGE_TRACKING_IS_COLUMN_IN_MASK (COLUMNPROPERTY(OBJECT_ID ('P'), 'txtDescription', 'ColumnID'), CT.SYS_CHANGE_COLUMNS) changeDescription, 
P.txtStartDate, 
P.txtStartTime, 
P.txtEndDate, 
P.txtEndTime, 
P.txtLocation, 
P.intAllDayEvent, 
P.intCategory, 
P.intSubcategory, 
P.txtCreatedBy, 
CT.SYS_CHANGE_OPERATION, 
CT.SYS_CHANGE_VERSION, 
CT.SYS_CHANGE_COLUMNS, 
CT.SYS_CHANGE_CONTEXT, 
U.txtFirstname, 
U.txtSurname 

FROM 
[dbo].[TableCalendar] AS P 

RIGHT OUTER JOIN CHANGETABLE(CHANGES [dbo].[TableCalendar], @last_sync_version) AS CT ON P.TableCalendarID = CT.TableCalendarID 
INNER JOIN [dbo].[TableUsers] AS U ON [txtCreatedBy] = U.txtUserCode 

ответ

0

Этот запрос был правильным, к сожалению, приложение я пытался отслеживать изменения на была написана таким образом, что означает, если вы редактировали одно поле обновляйте все из них в этой таблице.

Смежные вопросы