У меня есть запрос, который работает для архивации и удаления.Хранимая процедура получает данные со связанного сервера на другой сервер.Затем sp удаляет вставленные строки с исходного сервера.
--Table_B and A parameterized. They can change with parameter
INSERT INTO [Server_1].[DB_1].[dbo].[Table_A_1] (ColumnList1)
--ColumnList has a lot of columns like Column1,Column2
SELECT ColumnList FROM [Server_2].[DB_2].[dbo].[Table_B_1] WHERE (Condition);
DELETE FROM [Server_2].[DB_2].[dbo].[Table_B_1] WHERE (Condition);
INSERT INTO [Server_1].[DB_1].[dbo].[Table_A_2] (ColumnList1)
SELECT ColumnList FROM [Server_2].[DB_2].[dbo].[Table_B_2] WHERE (Condition);
DELETE FROM [Server_2].[DB_2].[dbo].[Table_B_2] WHERE (Condition);
INSERT INTO [Server_1].[DB_1].[dbo].[Table_A_3] (ColumnList1)
SELECT ColumnList FROM [Server_2].[DB_2].[dbo].[Table_B_3] WHERE (Condition);
DELETE FROM [Server_2].[DB_2].[dbo].[Table_B_3] WHERE (Condition);
INSERT INTO [Server_1].[DB_1].[dbo].[Table_A] (ColumnList1)
SELECT ColumnList FROM [Server_2].[DB_2].[dbo].[Table_B] WHERE (Condition);
DELETE FROM [Server_2].[DB_2].[dbo].[Table_B] WHERE (Condition);
Когда я запускаю SP вручную, он обычно работает.Но иногда SP дает ошибку, как показано ниже.Также, когда я пытаюсь запустить SP из службы Windows, он часто дает ошибку.Table_B_1, Table_B_2 и Table_B_3 собирают (они представляют собой данные для Table_B в виде чисел, файлов и т. Д.), Но Table_B (главная и важная таблица) не собирает.
Поставщик OLE DB "SQLNCLI11" для связанного сервера "Server_2"сообщил об изменении версии схемы между временем компиляции (" 185688636079091 ") и временем выполнения (" 185718681838570 ") для таблицы" "DB_2". "dbo". "Table_B" ".
Если я начал работу службыболее 50-60 раз с параметрами около 10 таблиц архивируется, а остальные нет.Мне нужно решение для этого.
Версии SQL Server одинаковы.Одна машина - это снимок машины.Версии:
Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64)