※ 引述《terranhardy (cO.Zy)》之銘言:
: 先謝謝你的回應,學到很多,試了一下後還有些問題,
: 1. 有辦法直接增加新的Table進去view就好,一定要全部Table都再加一次是嗎?
是的,要全部寫一遍。(所幸有複製貼上功能 :p)
: 2. 假設view裡面資料行有十個欄位,與Table的資料行的名稱不一致,
: 造成在加時會出現Invalid column name錯誤訊息,這要怎麼解決呢?
基本上,以 union 連接的 select 敘述,只要各 select 引用的欄位數量
相等而且資料型態相同即可,欄位名稱並沒有規定要一樣。至於實際傳回
用戶端的結果集的欄位名稱,以第一個 select 敘述的欄位名稱為準,如
果是檢視表,也可以在 create view 時,自訂新的欄位名稱。
(實際寫法,請參考文後附上的例子。)
: 3. 我每個Table的資料行欄位數量都不一樣,但總集合起來是view裡面的十個欄位,
: view的某欄若Table A沒有的則會顯示Null,不曉得要如何做到這一點。
湊數的欄位,就代 NULL 值即可,稍後的例子,我會加上這種寫法。
: 4. 若只增加每個Table有在View裡的欄位,則會顯示
: All the queries in a query expression containing a UNION operator
: must have the same number of expressions in their select lists
: 錯誤訊息。
: 所以看來應該要新增相同數量的欄位,但又會造成第二點的錯誤。
你說的沒錯,詳情也請參閱第二點的說明以及下列例子: