我想寫一個獨特的查詢來存儲在不同的表中相同的值 例如: 我有aa和bb tables.with屬性no,地址,phoneno,城市。 在這個no和city都一樣,其餘都不一樣。 在這兩個表中,一些屬性是唯一的,一些是不同的 ,我想在sql服務器中使用一個查詢更新2個表。獨特查詢在不同的表中存儲值
2
A
回答
2
您將不得不比一個簡單的查詢更高級一點來完成此操作。我的建議是,你可能應該規範你的設計把數字和城市放在一個單獨的表中,然後只需鏈接到另外兩個表中的這個表。
一般而言,您不應將信息複製到多個表中。但是也有例外。
但是你沒有問諮詢所以你可能有理由這樣做你問的方式。如果這仍然是你想要下去的路徑,你的選擇是由你使用什麼SQL的口味決定的。在許多SQL平臺上,您可以使用存儲過程完成此操作。在某些情況下,您可以使用視圖,觸發器和存儲過程。我會給你一個每個選項的快速簡介。
- 存儲過程 寫一個或多個存儲過程(或許每一個插入,更新,刪除),這些程序把你的值作爲參數。 proc然後在每個表上依次運行查詢。
- 存儲過程+查看+觸發 (你可以做到這一點MS SQL服務器上,但我不知道其他人。)這裏你創建你合併兩個表的單一視圖。 (加入你的共同領域。)這給你一個基本上是兩個表連接在一起的觀點。現在,由於該視圖基於兩個表格,因此它變成了不可更新的視圖。但是,您可以將存儲過程附加到視圖以進行插入,更新和刪除操作。在這裏你做的和第一種方法一樣,你創建了幾個過程來實際更新視圖下兩個表中的數據。這些過程有點不同,因爲這些過程需要設計爲觸發器。然後將這些特效附加到插入,更新或刪除視圖的觸發器。完成所有工作後,您應該能夠直接在視圖上插入,更新或刪除數據,並查看基礎表中的更改。
如果這一切看起來真的很複雜,那是因爲它。如果您有其他選項,例如規範化數據結構來解決問題,則應首先嚐試。如果你真的沒有選擇和觸發器可用,第二個選項工作得很好。
相關問題
- 1. 使用獨特的特定列在sqlite查詢中不顯示不同的值
- 2. 在同一查詢中不同項目的不同存儲庫
- 3. Excel獨特價值查詢
- 4. 查詢結果與存儲過程中的查詢不同
- 5. SQL查詢的獨特值(項)
- 6. 在SQLite中存儲/查詢多個值
- 7. 在PHP/MySql中將查詢結果存儲在不同的表中
- 8. 查詢天空表存儲空值
- 9. 轉換存儲過程,表值查詢
- 10. SQL查詢 - 在其他列的獨特價值不同(與INNER JOIN)
- 11. 不能存儲在不同表的值在數據庫中
- 12. LINQ獨特查詢
- 13. nHibernate獨特查詢
- 14. 從獨特的表Opencart sql查詢
- 15. 在mysql表中存儲和查詢json
- 16. 從bash運行mysql查詢;其中,查詢存儲在一個單獨的文件瓦特/ bash中
- 17. 在SQL Server中查詢2個不同值的特定列
- 18. MySQL的獨特之和不子查詢
- 19. LINQ查詢獨特的功能不DROPDOWNLIST
- 20. 查詢結果不存儲在POJO中?
- 21. 印刷獨特的或不同的值
- 22. 從不同表中查詢SQL查詢結果的值
- 23. 如何查詢返回不同的或獨特的 - breeze.js angular.js
- 24. Android獨特的SQLite查詢
- 25. 獨特的SQL查詢
- 26. 獨特的雙數組存儲在PHP
- 27. SQL查詢在兩個表中查找不同的值?
- 28. 存儲對象具有相同的@Id值但是獨特的父母值?
- 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