SQLServer 2000 中視圖的一個 bug

來源:互聯網
上載者:User
server|sqlserver|視圖 昨天(零點過了喲),在蘇州中部電子有限公司生產受發注在庫管理系統中遇到一個奇怪的問題。
前些天我測試得好好的程式,昨天給測試人員測試後得出了莫名其妙的錯誤,今天bug報告拿來了,我就陷入了奇怪的圈套中,因為我們的項目中用了大量的視圖,當然這個錯誤就出在視圖上。就是在視圖中的那個“*”,哈哈。

測試環境:
OS: Windows Server 2000/2003
Microsoft SQLServer: 2000 簡體中文企業版

測試步驟(示範):
第一步、讓我們建立一個資料庫吧,資料庫名字就叫“test”吧,其他選項都選預設:


第二步、在test資料庫中建立一個表“t1”:
它有三個欄位,順序分別為c1,c2,c3,資料類型無所謂


第三步、在test資料庫中建立一個視圖“v1”(不管多麼複雜都行,不過注意的是你要用*,而不要一項一項地列出來,因為*才會導致下面的錯誤發生喲)


第四步、在表“t1”中添加一列“t4”,讓這一列介於“c2”和“c3”之間


第五步、在表“t1”中插入一條資料:


第六步、開啟視圖“v1”去看看去(嘿,你看到什麼了?):

再開啟表“t1”看看(哈哈,好玩吧):



第七步、把視圖“v1”的開啟設計檢視重新執行一下設計(或者重新執行一下那個修改視圖的語句),它就正常了。

所以,我們在視圖中盡量不要使用*呀,嘿嘿,要是用了*的話,你要是改了表結構之後,你就別忘了把相關視圖更新一下設計,呵呵。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.