2017-07-24 101 views
-4

我嘗試使用下面的語法把值插入到表從另一個SQL Server 1的SQL Server:SQL Server錯誤:對象名稱包含超過最大數量的前綴。最大值爲2

SELECT * into [PWSQL0001-US].[test_database].[dbo].[wedata] FROM [mon-qa-01].[wma].[ci].[wemqadata] 

,但我得到了以下錯誤:

The object name PWSQL0001-US.test_database.dbo.wedata contains more than the maximum number of prefixes. The maximum is 2.

基本上,我想從[mon-qa-01]。[wma]。[ci]。[wemqadata]到[PWSQL0001-US]。[test_database]。[dbo]。[wedata]使用sql查詢傳輸每個值。

我最後的選擇可能是使用SSIS,但我想先嚐試使用查詢並繼續它,而不是先使用SSIS或導入/導出。

任何幫助,將不勝感激。

+0

這聽起來不像一個SQL Server錯誤,因爲SQL Server允許4部分組成的命名。 –

+3

這是['INTO ...'](https://docs.microsoft.com/zh-cn/sql/t-sql/queries/select-into-clause-transact-sql)樣式的限制。寫一個'INSERT ... SELECT',或者在'PWSQL0001-US'服務器上運行你的查詢,這樣你就不需要使用四部分的名字。 –

+0

謝謝@Damien_The_Unbeliever。我試過了,似乎應該有一個鏈接的服務器連接到它。它試圖插入後給我這個錯誤...選擇: Msg 7202,級別11,狀態2,行11 在sys.servers中找不到服務器'mon-qa-01'。驗證是否指定了正確的服務器名稱。如有必要,請執行存儲過程sp_addlinkedserver以將服務器添加到sys.servers。 – NancyJoe

回答

0

前綴錯誤來自INTO You can't INTO a linked server table

To create the table in another database on the same instance of SQL Server, specify new_table as a fully qualified name in the form database.schema.table_name.

You cannot create new_table on a remote server; however, you can populate new_table from a remote data source.

錯誤:

*****[PWSQL0001-US]******.[test_database].[dbo].[wedata] 
相關問題