我创建了一个名为[abc]的链接服务器。该链接服务器具有名为[Shipment_data]的表。以下是[Shipment_data]表中的列:[start_date],[end_date],[route_type]
我想从此表中删除start_date和end_date为null的行。
但是看起来正常的删除操作不适用于链接服务器上的表:
我尝试了以下代码,但是没有运气。下面是我的代码和我同样得到的错误消息:
方法1:
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)
错误消息:
链接服务器“ abc”的OLE DB提供程序“ Microsoft.ACE.OLEDB.12.0”返回消息“无法从指定表中删除”。 Msg 7320,第16级,州2,第12行 无法对链接服务器“ abc”的OLE DB访问接口“ Microsoft.ACE.OLEDB.12.0”执行查询“从
Shipment_data
删除”。
Method2:直接方法
DELETE FROM [abc]...[Shipment_data]
WHERE Start_Date is null and End_date is null
错误消息:
链接服务器“ abc”的OLE DB提供程序“ Microsoft.ACE.OLEDB.12.0”返回消息“书签无效”。 Msg 7346,第16级,州2,第1行 无法从链接服务器“ abc”的OLE DB提供程序“ Microsoft.ACE.OLEDB.12.0”获取行的数据。
有人可以帮助我实现在MS-SQL上的方法吗?