有時,我有興趣獲取SQL Server 2008 R2數據庫中某個表或視圖中列的列表。例如,如果您在不使用昂貴的現成產品的情況下構建數據庫文檔,這很有用。如何獲取表格或視圖中的列的列表?
什麼是獲取這些信息的簡單方法?
有時,我有興趣獲取SQL Server 2008 R2數據庫中某個表或視圖中列的列表。例如,如果您在不使用昂貴的現成產品的情況下構建數據庫文檔,這很有用。如何獲取表格或視圖中的列的列表?
什麼是獲取這些信息的簡單方法?
在SQL Server 2008 R2(以及其他版本)中,每個數據庫都會自動提供系統視圖。只要您連接到您的表所在的數據庫,你可以運行這樣的查詢:
DECLARE @TableViewName NVARCHAR(128)
SET @TableViewName=N'MyTableName'
SELECT b.name AS ColumnName, c.name AS DataType,
b.max_length AS Length, c.Precision, c.Scale, d.value AS Description
FROM sys.all_objects a
INNER JOIN sys.all_columns b
ON a.object_id=b.object_id
INNER JOIN sys.types c
ON b.user_type_id=c.user_type_id
LEFT JOIN sys.extended_properties d
ON a.object_id=d.major_id AND b.column_id=d.minor_id AND d.name='MS_Description'
WHERE [email protected]
AND a.type IN ('U','V')
當然,這只是一個起點。每個數據庫中還有許多其他系統視圖和列。您可以通過SQL Server Management Studio在Views > "System Views
下找到它們
sp_columns返回有關表中每列的詳細信息。 SO Answer
sp_columns @tablename
sp_help返回詳述關於整個表包括列和約束信息。 SO Answer
sp_help @tablename
好,但不能提供對列描述的訪問,據我所知。 –
另一種方式是查詢INFORMATION_SCHEMA.COLUMNS查看詳見這裏:
這會給你的信息在當前數據庫中的所有列(什麼表/它們屬於哪個視圖)包括它們的數據類型,精度,排序規則以及它們是否允許空值等
有用的是,這些視圖也可以在多個DBMS程序中維護,所以您可以使用相同或相似的查詢來獲取與SQL Server數據庫相同的有關MySQL數據庫的信息,如果您在多臺平臺上開發,這些數據可能會很有用。
就像blachniet的答案一樣,這也是一個很好的解決方案,但它仍然不能提供對列描述的訪問,據我所知。 –
啊,你沒有提到擴展屬性在你的問題,在這種情況下,加入sys.columns和sys.extended_properties應該做的伎倆。 information_schema視圖值得記住,儘管它們公開了大量信息,就像我提到的一樣,也存在於其他DBMS中,例如MySQL – steoleary
在新的查詢窗口中,輸入視圖/表的名稱,突出顯示它,然後按Alt-F1。這將運行sp_help,就像blachniet建議的那樣。
要獲得Columns of a view
一個清單,你可以使用下面列了一些其他information
:
SELECT * FROM sys.columns c, sys.views v
WHERE c.object_id = v.object_id
AND v.name = 'view_Name'
GO
如果你只想要Column Name
列表使用。
SELECT c.name
FROM sys.columns c, sys.views v
WHERE c.object_id = v.object_id
AND v.name = 'view_UserAssessphers'
GO
exec sp_helptext <your view name>
而且僅適用於該視圖,blachniet的回答是最好的,如果你需要在表中的列的詳細信息。
這裏提供的很多答案都很好,但我會爭辯說,db文檔中最重要的信息片段之一是列描述,其他答案都不提供。 –
您是否真的嘗試過任何建議的方法?我建議的方式會給你列描述如下「object_id,name,column_id,system_type_id,user_type_id,max_length,precision,scale,collation_name,is_nullable,is_ansi_padded,is_rowguidcol,is_identity,is_computed,is_filestream,is_replicated,is_non_sql_subscribed,is_merge_published,is_dts_replicated所以onnnnnnnnnn是不是足夠的列描述???? –
總共它返回了近50列全部包含關於視圖中的每一列的詳細信息似乎足夠的「列描述」給我朋友 –