2014-04-11 30 views
0

我試圖從一個臨時環境生產環境更新表。我寫了一個更新語句(下面的簡化版本),將使用來自另一個數據庫中的數據和我收到「不支持此類型的命令跨數據庫訪問」錯誤。我可以成功地從另一個數據庫插入數據,但不能更新。也許這是不允許的?在下面的例子中,我登錄到DB1。是否有可能在同一臺服務器上的另一個Netezza數據庫中更新表格?

第一次嘗試:

UPDATE DB1..EMPLOYEE e1 
SET e1.name = e2.name, 
    e1.phone = e2.phone 
FROM DB2..EMPLOYEE e2 
WHERE e1.id = e2.id; 

第2次嘗試:

UPDATE DB1..EMPLOYEE e1 
SET e1.name = e2.name, 
    e1.phone = e2.phone 
FROM (select name, phone, id from DB2..EMPLOYEE) e2 
WHERE e1.id = e2.id; 

回答

0

你是正確的,你只能改變的東西,在當前連接到數據庫。

跨數據庫語句,以改變當前數據庫中的數據從不同的數據庫中讀取的,雖然支持,所以這些語句應該工作,當你連接到DB1。

編輯:更新上述聲明更新的DB1表,所以你需要連接到DB1。

+0

你的意思是聲明,應工作,同時連接到DB1?您所說的其他一切似乎都是正確的,而且在更改了其中一個數據庫之後,我確實得到了它的工作,所以在創建其中一個數據庫時,必須存在某種權限或安裝錯誤。 – Kelly

+0

對不起,我會糾正我的答案。是的,當你連接到DB1。當你收到錯誤時,你確定你已經連接到DB1嗎?我只看到了「不支持跨數據庫語句...」錯誤,當你沒有連接到正確的數據庫。其他授權問題通常返回不同的錯誤消息 –

相關問題