链接服务器和临时表问题

时间:2010-08-20 23:33:16

标签: sql sql-server linked-server

我让我们的供应商为我们的服务器(SQL Server 2000)创建了一个链接服务器(SQL Server 2008)。

这是对供应商将数据类型更改为varchar(max)时遇到的问题的回应。我被告知我应该创建一个从2008年到2000年的链接来解决这个问题。现在我已完成此任务,当我运行查询链接到SQL Server 2000上的表时,我收到此错误:

  

Msg 208,Level 16,State 1,Line 8   无效的对象名称   'dbo.tbl_QClients'。链接的服务器   拥有此表的权限。

这基本上就是我的查询;

Select
  Col1,
  Col2,
  Col3,
  ...
INTO
  #temptable
FROM
  tbl_on_SQL2000
...

它比这更复杂(多个连接),但这基本上是查询。我找到的一件事是当我从查询中删除INTO #temptable时,它不会给我一个错误。有什么想法吗?

谢谢你的时间。

此致 奥斯卡

2 个答案:

答案 0 :(得分:0)

检查你是否有写权限,SELECT ... INTO创建一个新表,这很可能是为什么它会给你一个错误。

答案 1 :(得分:0)

尝试在插入之前定义临时表...

CREATE #temptable (
   blah,
   blah,
   blah
)

INSERT INTO
   #temptable
SELECT
   blah
FROM
   blah

将表从一台服务器连接到另一台服务器的表时,我经常遇到“意外”行为。主要是因为SQL擅长从远程服务器提取数据[它经常被拉成一个大的集合],但是很差并且将数据推送到远程服务器[它通常一次只能完成一条记录]。因此,我倾向于通过查询重新构造更小更简单的方法,获得我期望的行为和性能。