2010-08-20 52 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擅長從遠程服務器提取數據[它通常被拉爲一個大集合],但是很差,並且將數據推送到遠程服務器[通常每次只做一條記錄]。因此,我傾向於通過查詢重新構造更小更簡單的表達式,從而獲得我期望的行爲和性能。