簡體   English   中英

一次更新多個表-SQL Server / T-SQL

[英]Update Multiple Tables at a Time - SQL Server/T-SQL

我有兩個表,Customer和CustomerPhone。

客戶中的單個記錄可以具有多個客戶電話記錄。 如下圖所示,“電話和傳真”位於“客戶電話”表中,其余字段位於“客戶”表中。 如果用戶要編輯客戶記錄,顯然我將不得不更新Customer表中的記錄以及CustomerPhone中至少兩個記錄(電話和傳真)。

http://img714.imageshack.us/img714/9417/snapshotapp.jpg http://img714.imageshack.us/img714/9417/snapshotapp.jpg

我可以寫兩個更新語句,一個更新customerPhone和第二個更新Customer表。 有更好的解決方案嗎?

在這種情況下,風險是一個更新成功,但另一個更新由於某種原因(拔下網絡電纜,斷電等)而失敗,這將使數據庫中的數據不正確。

您可以通過2種方法來克服這一點。

  1. 做兩個單獨的更新,但是將它們包含在一個事務中
  2. 實現一個客戶更新存儲過程,以隱式或顯式事務為您更新兩個表。

SQL中無法在單個語句中更新多個表,但是您當然可以在同一命令中包含多個語句。

上面的第二種選擇可能對您來說很麻煩,因為您可以為客戶提供許多電話號碼,而且這是有限制的,因此,我建議您運行單獨的更新,但要在交易中進行。

關於此的幾種方法:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM