Удаление строк из таблицы на связанном сервере - PullRequest
0 голосов
/ 21 марта 2019

Я создал связанный сервер с именем [abc].у этого связанного сервера есть таблица с именем [Shipment_data].Ниже приведены столбцы таблицы [Shipment_data]: [start_date], [end_date], [route_type]

Я хочу удалить строки из этой таблицы, где start_date и end_date равны нулю.

Нопохоже, что обычная операция удаления не работает для таблиц на связанных серверах:

Я пробовал следующие коды, но не повезло.Ниже приведены мои коды и сообщения об ошибках, которые я получаю для того же:

method1:

Declare @deleteRow nvarchar(max)
Declare @linkedServerName nvarchar(max)
Set @linkedServerName = 'abc'
Set @DeleteRow = 'Delete from ' + @LinkedServerName + '...Shipment_data where [Start_Date] is null and [End_Date] is null'

Set @sql = 'exec ' + @LinkedServerName + '...sp_executesql ' + (@DeleteRow)

exec (@sql)

сообщение об ошибке:

OLE DB провайдера "Microsoft.ACE.OLEDB.12.0 "для связанного сервера" abc "вернул сообщение" Не удалось удалить из указанных таблиц. ".Сообщение 7320, уровень 16, состояние 2, строка 12 Невозможно выполнить запрос «УДАЛИТЬ ИЗ Shipment_data» для поставщика OLE DB «Microsoft.ACE.OLEDB.12.0» для связанного сервера «abc».

Метод 2: Прямой метод

DELETE FROM [abc]...[Shipment_data]
  WHERE Start_Date is null and End_date is null

Сообщение об ошибке:

Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "abc "вернуло сообщение" Закладка неверна. "Сообщение 7346, уровень 16, состояние 2, строка 1 Не удалось получить данные строки от поставщика OLE DB «Microsoft.ACE.OLEDB.12.0» для связанного сервера «abc».

Может кто-нибудь, пожалуйста, помогите мне сделать это на MS-SQL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...