Я создал системную версию (временную) таблицу в своей базе данных SQL Azure, следуя этому документу Создание временной таблицы :
CREATE TABLE Department
(
DeptID int NOT NULL PRIMARY KEY CLUSTERED
, DeptName varchar(50) NOT NULL
, ManagerID INT NULL
, ParentDeptID int NULL
, SysStartTime datetime2 GENERATED ALWAYS AS ROW START NOT NULL
, SysEndTime datetime2 GENERATED ALWAYS AS ROW END NOT NULL
, PERIOD FOR SYSTEM_TIME (SysStartTime, SysEndTime)
)
WITH
(
SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.DepartmentHistory)
)
;
Я создал две временные таблицы Department и Department2 на разных серверах Azure SQL.
Я тестирую в активной копии фабрики данных, выбираю Отдел в качестве исходного набора данных, мы видим временную таблицу из настроек:
Выберите Department2 в качестве набора данных ссылок, отображение таблиц ::
Отображение столбцов:
Активный запуск выполнен успешно:
Это означает, что Azure Data Factory поддерживает копирование данных из одной временной таблицы в другую временную таблицу другой базы данных.
Обновление:
Пожалуйста, обратитесь к этому документу: Временные таблицы в SQL Server 2016 - Часть III .
Теперь, начиная с INSERT, помните, что во временной таблице есть два специальных столбца datetime2, объявленных как GENERATED ВСЕГДА КАК START / END.
Это столбцы PERIOD, и они являются обязательными, но вы не можете вставить явное значение в столбец GENERATED ALWAYS. Его значения будут автоматически заполнены.
Когда вы вставляете новую строку в таблицу, столбец «ROW START» будет иметь значение SYSUTCDATETIME () (да, не забудьте, что время UTC!), А столбец «ROW END» будет иметь значение: «9999 -12-31 23: 59: 59.9999999 '
По сути, при вставке новой строки во временную таблицу, касающуюся этих двух столбцов, вы можете использовать следующие параметры:
1. Используйте список столбцов и пропустите эти два столбца;
2. Используйте список столбцов, не пропуская эти два столбца, и укажите DEFAULT в списке значений для каждого.
3. Не используйте список столбцов и укажите DEFAULT в списке значений для каждого.
Поздравляю, ошибку решили самостоятельно:
- Загрузка таблиц после отключения контроля версий в таблице назначения, и это сработало.
ALTER TABLE [dbo].[Department] SET(SYSTEM_VERSIONING = OFF); ALTER TABLE [dbo].[Department] DROP PERIOD FOR SYSTEM_TIME;
- Затем, после того как копия активна, переключите ее обратно.
ALTER TABLE [dbo].[Department] ADD PERIOD FOR SYSTEM_TIME (SysStartTime, SysEndTime); ALTER TABLE [dbo].[Department] SET(SYSTEM_VERSIONING = ON);
Надеюсь, это поможет.