2016-03-16 48 views
0

我有兩個完全相同的SQL腳本。 第一個只適用於PostrgeSQL,第二個適用於SQL-Server。使用SQL-Server和PostgreSQL運行的UPDATE腳本

的PostgreSQL:

UPDATE address AS a 
SET countrycode = s.isocode 
FROM country AS s 
WHERE a.idcountry = s.id; 

SQL-服務器:

UPDATE a 
SET a.countrycode = c.isocode 
FROM address AS a 
INNER JOIN country AS c 
ON a.idcountry = c.id; 

是否有可能創建一個帶有兩個數據庫系統上運行相同的功能單一的腳本?

+1

我猜共同相關子查詢分配應該工作。但它會變得很慢**。像這樣:http://hastebin.com/eqilarepex.sql –

+0

如果這是一次性工作,那麼有什麼意義?如果不是那麼 - 這是你係統中唯一的腳本嗎? –

回答

1

嘗試:

UPDATE address a 
SET countrycode = (
     SELECT s.isocode 
     FROM country s 
     WHERE a.idcountry = s.id 
);