Я создал связанный сервер с именем [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?