日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

如何从SQL Server 中取得字段说明

發布時間:2025/7/14 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何从SQL Server 中取得字段说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SQL Server 2000

你可以在企業管理器中增加字段說明,也可以使用下面的代碼:

EXEC?sp_addextendedproperty?
????
'MS_Description',?
????
'some?description',?
????
'user',?
????dbo,?
????
'table',?
????table_name,?
????
'column',?
????column_name

現在,你就可以得到通過下面的代碼得到字段說明:

SELECT?
????
[Table?Name]?=?i_s.TABLE_NAME,?
????
[Column?Name]?=?i_s.COLUMN_NAME,?
????
[Description]?=?s.value?
FROM?
????INFORMATION_SCHEMA.COLUMNS?i_s?
LEFT?OUTER?JOIN?
????sysproperties?s?
ON?
????s.id?
=?OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME)?
????
AND?s.smallid?=?i_s.ORDINAL_POSITION?
????
AND?s.name?=?'MS_Description'?
WHERE?
????
OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME),?'IsMsShipped')=0?
????
--?AND?i_s.TABLE_NAME?=?'table_name'?
ORDER?BY?
????i_s.TABLE_NAME,?i_s.ORDINAL_POSITION

如果你只關心某一張表,那么上面的TSQL中的注釋部份對你就非常有幫助。反過來就會給你所有表中的所有字段。

如果你只需要所有有說明的表,你可以把out join 改成 inner join

SELECT?
????
[Table?Name]?=?i_s.TABLE_NAME,?
????
[Column?Name]?=?i_s.COLUMN_NAME,?
????
[Description]?=?s.value?
FROM?
????INFORMATION_SCHEMA.COLUMNS?i_s?
INNER?JOIN?
????sysproperties?s?
ON?
????s.id?
=?OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME)?
????
AND?s.smallid?=?i_s.ORDINAL_POSITION?
????
AND?s.name?=?'MS_Description'?
WHERE?
????
OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME),?'IsMsShipped')=0?
ORDER?BY?
????i_s.TABLE_NAME,?i_s.ORDINAL_POSITION

?

SQL Server 2005

在SQL Server 2005 中 sysproperties 表已被廢棄,所以上面的代碼都不能用。幸運的是他們還是增加了一個系統表給我們 sys.extended_properties,這張表和 sysproperties基本上相似。

SELECT??
????
[Table?Name]?=?OBJECT_NAME(c.object_id),?
????
[Column?Name]?=?c.name,?
????
[Description]?=?ex.value??
FROM??
????sys.columns?c??
LEFT?OUTER?JOIN??
????sys.extended_properties?ex??
ON??
????ex.major_id?
=?c.object_id?
????
AND?ex.minor_id?=?c.column_id??
????
AND?ex.name?=?'MS_Description'??
WHERE??
????
OBJECTPROPERTY(c.object_id,?'IsMsShipped')=0??
????
--?AND?OBJECT_NAME(c.object_id)?=?'your_table'?
ORDER??
????
BY?OBJECT_NAME(c.object_id),?c.column_id


和SQL Server 2000一樣,你可以使用注釋部份來返回某一張表。

Microsoft Access

在Access中,你可以使用下面的ASP代碼來得到某一個字段的說明

<%?
????
on?error?resume?next?
????
Set?Catalog?=?CreateObject("ADOX.Catalog")?
????Catalog.ActiveConnection?
=?"Provider=Microsoft.Jet.OLEDB.4.0;"?&?_?
????????
"Data?Source=<path>\<file>.mdb"?
?
????dsc?
=?Catalog.Tables("table_name").Columns("column_name").Properties("Description").Value?
?
????
if?err.number?<>?0?then?
????????Response.Write?
"&lt;"?&?err.description?&?"&gt;"?
????
else?
????????Response.Write?
"Description?=?"?&?dsc?
????
end?if?
????
Set?Catalog?=?nothing?
%
>

總結

以上是生活随笔為你收集整理的如何从SQL Server 中取得字段说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。