2010-08-30 83 views
4

嘿,我想了解如何將數據從一個表複製到另一個數據庫表。我有兩個連接到兩個不同的數據庫。一個叫comp-DEV1和另一個SQLTEST。我目前無法將數據從我的sorce表(SQLTEST)複製到我的目標表(comp-DEV1)。MS SQL Server 2005將數據從一個表複製到另一個表

這是錯誤:

Msg 102, Level 15, State 1, Line 2 Incorrect syntax near '-'.

查詢:

INSERT INTO comp-DEV1.EMSSQL.dbo.tblCL 
SELECT * 
FROM SQLTEST.EMSSQL.dbo.tblCL 
WHERE NOT EXISTS(SELECT * 
      FROM comp-DEV1.EMSSQL.dbo.tblCL 
      WHERE (SQLTEST.EMSSQL.dbo.tblCL.CID = comp-DEV1.EMSSQL.dbo.tblCL.CID) 
      ) 

任何幫助將是巨大的:O)

大衛

+0

'comp-DEV1'是'SQLTEST'上的鏈接服務器嗎? – 2010-08-30 16:12:59

+0

不要以爲是。我如何去關聯它們? – StealthRT 2010-08-30 16:20:41

回答

3

嘗試在括號包裹你的數據庫名稱,如:

INSERT INTO [comp-DEV1].EMSSQL.dbo.tblCL 
SELECT * 
FROM SQLTEST.EMSSQL.dbo.tblCL 
WHERE NOT EXISTS(SELECT * 
      FROM [comp-DEV1].EMSSQL.dbo.tblCL 
      WHERE (SQLTEST.EMSSQL.dbo.tblCL.CID = 
       [comp-DEV1].EMSSQL.dbo.tblCL.CID) 
      ) 
+0

好吧,這樣做,我現在有一個新的錯誤:消息7202,級別11,狀態2,第2行 無法在sys.servers中找到服務器'SQLTEST'。驗證是否指定了正確的服務器名稱。如有必要,請執行存儲過程sp_addlinkedserver以將服務器添加到sys.servers。 – StealthRT 2010-08-30 16:16:10

+0

@StealthRT:您只需要使用四個名稱符號來訪問鏈接服務器實例 - 當引用當前實例上的表時,可以省略它:'SELECT * FROM EMSSQL.dbo.tblCL WHERE ...' – 2010-08-30 16:20:22

+0

@OMG小馬(哈哈)。你是正確的,但我仍然得到錯誤,因爲即時猜測,數據庫沒有鏈接在一起? – StealthRT 2010-08-30 16:36:04

0

運行下面的語句首先要檢查的是你可以閱讀從目標服務器的源:

SELECT * FROM [COMP-DEV1] .EMSSQL.dbo.tblCL

把那第一份工作,然後你應該在你的路上...

+0

是的,它會讀取這些記錄。 – StealthRT 2010-08-30 16:17:14

相關問題