Преобразовать существующую таблицу во временную таблицу с вычисляемым столбцом (пользовательская функция)

#sql #sql-server #user-defined-functions #calculated-columns #temporal-tables

#sql #sql-сервер #определяемые пользователем функции #вычисляемые столбцы #временные таблицы

Вопрос:

Я хочу преобразовать мою существующую таблицу во временную таблицу, и в ней будет 2 вычисляемых столбца (пользовательская функция).

Я уже добавил 3 столбца в свою таблицу, используя приведенный ниже скрипт, и это было успешно.

 Alter Table Trips
Add StartTime DateTime2 (2) GENERATED ALWAYS AS ROW START HIDDEN
        constraint df_StartTime default DateAdd(second, -1, SYSUTCDATETIME()),
    EndTime DateTime2 (2) GENERATED ALWAYS AS ROW END HIDDEN
        constraint df_EndTime default '9999.12.31 23:59:59.99',
    Period For System_Time (StartTime, EndTime)
Go
  

Но когда я пытаюсь выполнить приведенный ниже скрипт

 Alter Table Trips
    SET(SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.Trips_History))
Go
  

Я получаю сообщение об ошибке ниже

 Msg 13585, Level 16, State 1, Line 19
Computed column is defined with a user-defined function which is not allowed with system-versioned table 'AccessBetaX.dbo.Trips' because it performs user or system data access, or is assumed to perform this access. A function is assumed by default to perform data access if it is not schemabound.
  

Я пропустил что-то важное?

Комментарии:

1. Какова структура таблицы Trips_History? Таблица истории не должна содержать вычисляемых столбцов, определите их как обычные столбцы с соответствующим типом