2015-04-28 84 views
0

我想作如下聲明:Transfering數據從生產服務器的發展服務器

INSERT INTO [Server_1\Instance_1].[Database].[dse].Table1 
SELECT * FROM [Server_2\Instance_2].[Database].[dse].[**Table1**] 

點是表是不同的服務器上。我嘗試了上面的陳述。然而,當我在服務器1,當我以從服務器2獲取數​​據運行下面的語句:

SELECT * FROM [Server_2\Instance_2].[Database].[dse].[**Table1**] 

...我得到零行。 但是當我在Server_2上運行上面的語句時,我得到一組行。

如何將數據從生產轉移到開發服務器/環境? 我正在使用MS Management Studio。

UPDATE: 當我以從另一個(生產)服務器獲取數據運行SELECT語句,我得到的錯誤信息:

OLE DB提供程序「SQLNCLI10」鏈接服務器「Prod_Server \ Instance」不包含表「」數據庫「。」dse「。」BoxIteration「」。該表或者不存在,或者當前用戶對該表沒有權限。

Select語句是:

SELECT * FROM [Prod_Server\Instance].[Database].[dse].[BoxIteration] 
+1

在第一個插入語句中,您在4個部分對象名中都有相同的服務器名稱。這是一個錯字嗎? – GarethD

+0

可能是服務器都鏈接服務器然後上面的查詢將工作 – mohan111

+0

@GarethD:這是一個錯字。我會糾正它。本質上,問題在於將數據從一臺服務器傳輸到另一臺服務器,以便用生產數據測試解決方案。 – Adam

回答

1

有兩點需要考慮:

  • 在目標服務器添加源服務器作爲鏈接服務器
  • 驗證指定的憑據同時創建鏈接的服務器可以訪問源服務器中的數據

我有一個本地化版本的SQL Server,因此轉換可能與您在屏幕上看到的不匹配:在SSMS中打開對象資源管理器窗口,連接到目標服務器,打開樹並查找服務器對象,鏈接服務器。右鍵單擊源鏈接服務器,然後查看屬性。打開安全窗格,查看哪些憑證用於連接到鏈接服務器。

一旦您這樣做了,您必須檢查源服務器上該憑據的權限,以驗證它是否可以訪問有問題的表。

如果您不明白或無法執行某些步驟(缺少權限),請從您的DBA獲得幫助:他會立即理解並解決問題。

+0

你能舉一個例子說明如何實際做到這一點嗎?順便說一句,我是開發人員,並已讀取生產服務器上的權限,並在dev服務器上讀取+寫入權限。 – Adam

+0

我已經更新了答案,請看看它。 – JotaBe

0

如果妳有機會(有證書)同時督促和開發數據庫服務器可以使用「導入和導出數據」 1.Go啓動並打開「導入和導出數據」 enter image description here

  • 嚮導將打開給源服務器名稱,證書和數據庫(對於你的情況PROD)
  • 然後給目標服務器名稱,證書和數據庫(開發)
  • 選擇表,如果有任何標識列 - >「編輯映射」和啓用身份插入。
  • 然後給下一個 - >它會開始複製。
  • 相關問題