使用链接服务器查询时插入数据时出错

时间:2010-10-05 15:10:58

标签: sql-server insert linked-server

更新:问题是col1是hiereachyid类型,甚至选择也没有用。

大家好,

我收到此错误 -

  

在分布式查询中不允许使用CLR类型公开列的对象。请使用传递查询来访问远程对象“RemoteDb”。“dbo”。“RemoteTable”'。

我已经设置了链接服务器[RemoteServer.dev.com]。我试图从远程表执行批量插入到当前表中这样的事情 -

INSERT INTO [CurrentDb].[dbo].[Mytable]
     (
       col1,
       col2
      )
 SELECT
  col1,col2
 FROM [RemoteServer.dev.com].[RemoteDb].[dbo].[RemoteTable]

任何人都可以帮帮我..谢谢。

1 个答案:

答案 0 :(得分:16)

如错误所示,由于数据类型的原因,您需要在此处进行传递查询。试试这个:

INSERT INTO [CurrentDb].[dbo].[Mytable]
     (
       col1,
       col2
      )
    SELECT col1, col2 
        FROM OPENQUERY([RemoteServer.dev.com], 'SELECT col1, col2 FROM [RemoteDb].[dbo].[RemoteTable]')