如何在SQL Server 2008中顯示數據庫中所有視圖的內容?是否有任何新的系統視圖來做同樣的事情?在SQL Server2008中顯示視圖內容
回答
使用Management Studio中的最簡單方法是:
- 查找Management Studio中
- 在數據庫的數據庫,點擊查看文件夾上應該顯示在左側(官方稱爲對象資源管理器)你列出你右邊的觀點。如果沒有,您想要轉到視圖菜單並選擇對象詳細信息。
- 選擇所有視圖。所選擇的看法
- 右擊並選擇「腳本視圖作爲」 - >創建爲 - >新的查詢窗口
這將打開一個窗口,你選擇的一切的視圖定義。
編輯:如果您想查詢你的所有視圖定義你能這樣做:如果你改變你的輸出文本,而不是電網
Select VIEW_DEFINITION
From INFORMATION_SCHEMA.VIEWS
,它將給你的所有的視圖列表。
正如gbn指出的那樣,如果它是您想要的模式,並且如果某個開發人員足夠瘋狂以創建超過4k個字符的視圖,那麼INFORMATION_SCHEMA視圖將針對該視圖的模式返回null。所以,在這種情況下使用系統表會更合適。 GBN的解決方案的一個變化,這是類似於什麼短信做幕後是:
Select smv.definition
FROM sys.all_views AS v
JOIN sys.sql_modules AS smv
ON smv.object_id = v.object_id
SELECT
O.name, SM.definition
FROM
sys.objects O
JOIN
sys.sql_modules SM ON o.object_id = SM.object_id
WHERE
o.type = 'V'
「INFORMATION_SCHEMA」具有爲nvarchar(4000),這將導致視圖定義的截斷的列的限制,當你選擇它:不要使用它
不正確。根據BOL的說法:「如果定義的長度大於nvarchar(4000),則此列爲NULL,否則此列爲視圖定義文本。」所以你不應該截斷。如果您對4k以上的觀點是另一回事。 – Thomas 2010-03-12 07:48:32
也許文檔已過時,因爲我有一個視圖,其定義大於4000並且被截斷。 – pisaruk 2014-02-10 19:13:31
@Thomas:隨時爲您的觀點使用INFORMATION_SCHEMA,因爲它們通常較小。但是,對於存儲過程(通常會更長),那麼我會使用sys.sql_modules。但爲什麼不對所有代碼使用相同的方法?在現實生活中,我想100%確定我得到正確的數據。 BOL數據類型仍然是nvarchar(4000) – gbn 2014-02-11 08:00:35
添加此sqlcmd腳本爲他人作爲4k限制並不好玩。感謝這個線程。
-- :r meta_show_view_definition.sql
-- need user logon with ALTER permissions
-- :setvar ObjectName "<string>"
set nocount on
declare @sql varchar(max)
:out $(ObjectName).view.dump.sql
set @sql = '
select obj.name, sm.definition
from sys.objects obj
join sys.sql_modules sm on obj.object_id = sm.object_id
where
obj.type = "V" and
upper(obj.name) = upper("' + '$(ObjectName)' + '")'
exec (@sql)
go
:out stdout
set nocount off
- 1. 在視圖中顯示內容
- 2. ActiveAdmin顯示默認視圖內容
- 3. Corona SDK:更改顯示內容視圖
- 4. 空視圖不顯示任何內容
- 5. 在容器視圖中顯示CNContactPickerViewController?
- 6. 在matplotlib中顯示圖的內容inmmediately
- 7. Laravel 5.1>在視圖中使用@inject來顯示內容
- 8. 未在移動視圖中顯示頁腳內容
- 9. UITableView在UITableViewCell內容視圖中顯示UIDatePicker
- 10. 在列表視圖中顯示sqlite內容
- 11. 使用視圖/模板在表格中顯示CSV內容
- 12. 如何獲取塊的內容以顯示在視圖中?
- 13. 在表視圖中顯示數組的內容
- 14. Windows Phone 8 WebBrowser在滾動視圖中顯示它的內容
- 15. 顯示相機在視圖中可以看到的內容
- 16. 如何在列表視圖中顯示內容
- 17. 如何在Rails視圖中顯示內容並排除幾頁?
- 18. 在文件夾中顯示內容的自定義視圖
- 19. sql server2008中的SplitValue函數
- 20. 如何在jQuery中顯示內容之前顯示setTimeout圖片?
- 21. 顯示視圖內聯?
- 22. 自定義顯示視圖內的內容類型的字段?
- 23. 顯示勾選附件視圖中移動表內容
- 24. CakePHP 1.3如何在顯示內容之前渲染視圖
- 25. 在列表視圖爲空時顯示一些內容
- 26. 根據didSelectRowAtIndexPath在新視圖上顯示內容
- 27. 如何在使用iAd時顯示視圖的內容
- 28. 如何在Android網絡視圖上顯示Flash內容
- 29. 在圖像上顯示li內容
- 30. 試圖用VS2005和SQL-Server2008的
你打開它們...... – 2010-03-12 05:20:59
你是什麼意思「檢查內容」?檢查它是什麼?檢查它運行?查找某些列? – Thomas 2010-03-12 05:21:49
我想查看我的db中所有視圖的定義 – Veejay 2010-03-12 05:38:34