[SQL Server] View 中的語法不要用 Select *

[SQL Server] View 中的語法不要用 Select *

[情境] 資料表擴欄位, 導致檢視表欄位內容有誤.

[環境] SQL Server 2005 (2000 亦會有同樣情形)

 

原始Table: 員工及組織

image

原始View : 員工用* , 並接組織名稱欄位

原作者說: 這樣子, 資料表擴欄位就不用一直來改view了... (大誤) 

image

原始 View Data: 請注意看組織名稱

image

員工資料表擴欄位: 年齡及性別

image

變更後 View Data: 組織名稱出包了... 冏

image

 

解法:

重新建立檢視表,並將Select * 移除,改為固定欄位。

補充:

若少欄位

image

會出現錯誤訊息:指定的資料行名稱數量大於所定義的資料行。

image

 

 

查找一下系統資料表, 有出現不合的地方喔~

不過我找不到有關sys.all_columns的資料, 也不明白微軟實作的方式, 只能到此打住. 謝謝觀賞

image