2010-08-20 29 views
1

我让我们的供应商创建一个链接服务器(SQL Server 2008)到我们的服务器(SQL Server 2000)。链接服务器和临时表问题

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

Msg 208, Level 16, State 1, Line 8 Invalid object name 'dbo.tbl_QClients'. The linked server has permissions to this table.

这基本上就是我的查询看起来像;

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

它比这个(多个连接)稍微复杂一点,但这基本上是查询。我发现的一件事是当我从查询中删除INTO #temptable它不会给我一个错误。有任何想法吗?

感谢您的时间。

问候, 奥斯卡

回答

0

检查,如果你有写权限,SELECT ... INTO创建一个新表,为什么它给你一个错误,最有可能。

0

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

CREATE #temptable (
    blah, 
    blah, 
    blah 
) 

INSERT INTO 
    #temptable 
SELECT 
    blah 
FROM 
    blah 

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