熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL Server 2000的視圖中必須小心使用*符號[3]

2022-06-13   來源: SQL Server 

  帶著這個問題讓我們去了解一下何謂視圖?在Sql Server的幫助文檔中是這樣描述視圖的定義如下視圖是一個虛擬表其內容由查詢定義同真實的表一樣視圖包含一系列帶有名稱的列和行數據但是視圖並不在數據庫中以存儲的數據值集形式存在行和列數據來自由定義視圖的查詢所引用的表並且在引用視圖時動態生成通過這個定義我們可以看出視圖是一個虛擬的表它僅僅包括視圖的定義腳本查詢的內容則是動態的生成當我們創建了一個視圖以後視圖的腳本會保存到當前數據庫的系統表syscomments裡我們可以通過系統提供的存儲過程sp_helptext查詢得到視圖的定義腳本從定義上看好像並不能得到我們想要的答案那麼我們就先不管Sql Server是如何實現視圖的我們先來解決一下當前的問題(我上面提到的)可能有些朋友已經知道了解決問題的辦法了那就是把vCustomersB的定義腳本重新執行一下(其實只需要把create換成alter執行一下就可以)腳本如下

  重新執行一下vCustomersB的定義腳本

  alter view vCustomersB
  as
  select * from vCustomersA
  go

  那麼除了這個方法以外其實SqlServer也提供了一個擴展存儲過程sp_refreshview來幫我們做這件事情調用的腳本如下

  刷新指定視圖的元數據

  exec sp_refreshview vCustomersB

  我個人目前就知道這兩個辦法不知道你還有沒有其他的辦法有的話可以一起分享一下

[]  []  []  []  []  


From:http://tw.wingwit.com/Article/program/SQLServer/201311/22388.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.