將視圖依賴於表的列添加到視圖時,對命名字段的視圖有非常意想不到的影響。添加列到表中會更改視圖的sql
SQL:
SELECT dbo.AccessCustomFieldDepartment.AccessCustomFieldDepartmentID, dbo.AccessCustomFieldDepartment.AccessCustomField_StoreID,
dbo.AccessCustomFieldDepartment.AccessCustomField_ShopOwner, dbo.AccessCustomFieldDepartment.AccessCustomField_CVRnumber,
dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToWed, dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToThu,
dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToFri, dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToTue,
--..
--a bunch of other fields
--..
dbo.AccessUser.AccessUserAddress, dbo.AccessUser.AccessUserAddress2, dbo.AccessUser.AccessUserZip, dbo.AccessUser.AccessUserCity,
dbo.AccessUser.AccessUserCountry, dbo.AccessUser.AccessUserWeb
FROM dbo.AccessUser INNER JOIN
dbo.AccessCustomFieldDepartment ON dbo.AccessUser.AccessUserID = dbo.AccessCustomFieldDepartment.AccessCustomFieldDepartmentID
當其他國家的人民代碼做一個動態添加列到表AccessUser,服務器,或者有新的變化視圖的SQL!
EG:
dbo.AccessUser.AccessUserCountry, dbo.AccessUser.AccessUserWeb
被改爲
dbo.AccessUser.AccessUserCountry AS AccessUserCity,
dbo.AccessUser.AccessUserWeb AS AccessUserCountry
這大大F * * * S了我得到的數據的呈現....它的觀點一樣,試圖維持各列的位置。
刪除列奇蹟般地將sql更改爲原始。
所以問題是:
- 這是怎麼回事?它是服務器嗎? CMS 軟件中的某些功能(其中添加字段功能是)
- 我可以對視圖進行設置,使其將sql語句視爲100%靜態?
問候,
斯蒂恩
什麼DBMS? Accesss?有沒有鏈接表?通常解決方案是重新組合視圖,這應該是自動發生的,但可能不會。 SQL Server上的sp_recompile。另外,避免在表格末尾添加列,在中間添加它們會造成麻煩,並且從不在視圖中使用*。 – Ben 2012-04-26 10:08:17
A [DDL觸發器](http://msdn.microsoft.com/en-us/library/ms175941.aspx),也許? – 2012-04-26 17:36:05
感謝您的意見。 @本:MS-SQL服務器2008R2。我剛剛在基本視圖中創建,以便從CMS中的現有表中獲取數據。無法控制列添加。已經明確說明了所有的專欄名稱,所以這就是爲什麼我很驚訝地看到chages。還想知道如何避免,但是可以選擇不使用視圖來運行它。... – Steen 2012-04-26 21:08:36