我想寫一個獨特的查詢來存儲在不同的表中相同的值 例如: 我有aa和bb tables.with屬性no,地址,phoneno,城市。 在這個no和city都一樣,其餘都不一樣。 在這兩個表中,一些屬性是唯一的,一些是不同的 ,我想在sql服務器中使用一個查詢更新2個表。獨特查詢在不同的表中存儲值
2
A
回答
2
您將不得不比一個簡單的查詢更高級一點來完成此操作。我的建議是,你可能應該規範你的設計把數字和城市放在一個單獨的表中,然後只需鏈接到另外兩個表中的這個表。
一般而言,您不應將信息複製到多個表中。但是也有例外。
但是你沒有問諮詢所以你可能有理由這樣做你問的方式。如果這仍然是你想要下去的路徑,你的選擇是由你使用什麼SQL的口味決定的。在許多SQL平臺上,您可以使用存儲過程完成此操作。在某些情況下,您可以使用視圖,觸發器和存儲過程。我會給你一個每個選項的快速簡介。
- 存儲過程 寫一個或多個存儲過程(或許每一個插入,更新,刪除),這些程序把你的值作爲參數。 proc然後在每個表上依次運行查詢。
- 存儲過程+查看+觸發 (你可以做到這一點MS SQL服務器上,但我不知道其他人。)這裏你創建你合併兩個表的單一視圖。 (加入你的共同領域。)這給你一個基本上是兩個表連接在一起的觀點。現在,由於該視圖基於兩個表格,因此它變成了不可更新的視圖。但是,您可以將存儲過程附加到視圖以進行插入,更新和刪除操作。在這裏你做的和第一種方法一樣,你創建了幾個過程來實際更新視圖下兩個表中的數據。這些過程有點不同,因爲這些過程需要設計爲觸發器。然後將這些特效附加到插入,更新或刪除視圖的觸發器。完成所有工作後,您應該能夠直接在視圖上插入,更新或刪除數據,並查看基礎表中的更改。
如果這一切看起來真的很複雜,那是因爲它。如果您有其他選項,例如規範化數據結構來解決問題,則應首先嚐試。如果你真的沒有選擇和觸發器可用,第二個選項工作得很好。
相關問題
- 1. 使用獨特的特定列在sqlite查詢中不顯示不同的值
- 2. 查詢結果與存儲過程中的查詢不同
- 3. SQL查詢的獨特值(項)
- 4. MySQL查詢的獨特和總和值
- 5. 在PHP/MySql中將查詢結果存儲在不同的表中
- 6. SQL查詢 - 在其他列的獨特價值不同(與INNER JOIN)
- 7. 查詢天空表存儲空值
- 8. 不能存儲在不同表的值在數據庫中
- 9. nHibernate獨特查詢
- 10. LINQ獨特查詢
- 11. 如何查詢返回不同的或獨特的 - breeze.js angular.js
- 12. 查詢結果不存儲在POJO中?
- 13. SQL查詢在兩個表中查找不同的值?
- 14. 獨特的雙數組存儲在PHP
- 15. 存儲對象具有相同的@Id值但是獨特的父母值?
- 16. 查詢存儲在數據庫字段中的字符串中的特定值
- 17. 如何查詢存儲在不同表中的自定義排序順序?
- 18. 每個獨特/不同值的計算
- 19. 每次查詢數據或在表中存儲值?
- 20. SQL查詢使用來自其他表和變量的獨特/不同數據填充表的SQL查詢?
- 21. 如何在存儲過程中只查詢計劃中的特定查詢
- 22. 查詢存儲順序值PostgreSQL中
- 23. 查詢數據存儲中存在的屬性值集合
- 24. 如何在列表中不同的值存儲使用豬
- 25. HQL ManyToMany查詢中的獨特結果
- 26. SQL查詢獨特/集團不工作
- 27. 查詢到的輸出值中不存在在表
- 28. mvc:同一個查詢不同的儲存庫?
- 29. 進行查詢到相同的表值在不同的行
- 30. 獨特價值表
您無法使用一條'UPDATE'語句更新兩個表。但是您可以創建一個存儲過程來執行此操作 - 執行兩個單獨的更新。 – 2011-03-16 14:15:54
可以給我的程序語法 – Ddev 2011-03-16 14:25:01
'CREATE PROCEDURE' http://msdn.microsoft.com/en-us/library/ms187926.aspx – 2011-03-16 14:27:38