sql兩個表數據更新


一、當用一個表中的數據來更新另一個表中的數據,T-SQL提供多種寫法(下面列出了二種),但建議用第一種寫法,雖然傳統,但結構清晰。

並且要注意,當用一個表中的數據來更新另一個表中的數據時,二個表一定要有關聯!

1.


update t1   
        set t1.c2 = t2.c2  
      from t2  
where t1.c1 = t2.c1

2.


Update t1   
        set t1.c2 = t2.c2  
from t1 inner join t2   
        on t1.c1 = t2.c1

二、FROM 子句中指定的表的別名不能作為 SET column_name 子句中被修改字段的限定符使用。
    例如,下面的內容無效:


UPDATE titles  
SET t.ytd_sales = t.ytd_sales + s.qty  
FROM titles t, sales s  
WHERE t.title_id = s.title_id  
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

若要使上例合法,請從列名中刪除別名 t 或使用本身的表名。
1.


UPDATE titles  
SET ytd_sales = t.ytd_sales + s.qty  
FROM titles t, sales s  
WHERE t.title_id = s.title_id  
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

2.


UPDATE titles  
SET titles.ytd_sales = t.ytd_sales + s.qty  
FROM titles t, sales s  
WHERE t.title_id = s.title_id  
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM