當前位置:首頁 » 編程語言 » sql獲取某個欄位注釋
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql獲取某個欄位注釋

發布時間: 2022-06-16 21:16:42

Ⅰ 怎樣獲取數據表中指定欄位的注釋(comment) - 技術問答

SHOW
CREATE
TABLE
tablename;這可以取得表的定義信息,剩下就是用正則匹配類似:`groupId`
smallint(6)
unsigned
NOT
NULL
COMMENT
\'groupid\',即
$info
=
preg_replace(\'|.+COMMENT\\s+\\\'(.+)\\\'|\',
\'\\\\1\',
$str);上面只是參考,具體形式要根據表特定結構操作

Ⅱ 如何查看並導出sqlSERVER數據表中欄位的注釋信息

sysobjects是系統對象表,syscolumns是系統欄位信息表,systypes是系統類型表。通過欄位的ID和sysproperties(系統注釋屬性表)關聯,即可讀出注釋信息。

Ⅲ 如何獲取SQL表欄位的注釋文本

WHERE (B.id = OBJECT_ID('表名稱'))SQL2005:select * from fn_listextendedproperty('MS_Description', 'user', 'dbo', 'table', '表名稱'', 'column', default)
注:次方法只能取出有注釋的欄位,如果指定表沒有注釋,則此方法不能獲取到任何記錄

Ⅳ 在asp.net 中怎麼讀取sql2005資料庫中表的欄位的注釋

1.獲取所有資料庫名:
(1)、Select Name FROM Master.dbo.SysDatabases orDER BY Name
2.獲取所有表名:
(1)、Select Name FROM SysObjects Where XType='U' orDER BY Name
XType='U':表示所有用戶表;
XType='S':表示所有系統表; (2)、SELECT name FROM sysobjects WHERE type = 'U' AND sysstat = '83' 注意:一般情況只需要type = 'U',但有時候會有系統表混在其中(不知道什麼原因),加上後面一句後就能刪除這些系統表了
3.獲取所有欄位名:
(1)、Select Name FROM SysColumns Where id=Object_Id('TableName')(2)、SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND "syscolumns.id = object_id('tableName') 注意點:
(a)這里為了重點突出某些重要內容,選取了其中幾項信息輸出。
(b)syscolumns表中只含有數據類型編號,要獲取完整的名字需要從systypes表中找,一般用戶使用的數據類型用xusertype對應比較好,不會出現一對多的情況。
(c)syscolumns.length得到的是物理內存的長度,所以nvarchar和varchar等類型在資料庫中的顯示是這個的一半。4、得到表中主鍵所包含的列名:SELECT syscolumns.name FROM syscolumns,sysobjects,sysindexes,sysindexkeys WHERE syscolumns.id = object_id('tablename') AND sysobjects.xtype = 'PK' AND sysobjects.parent_obj = syscolumns.id AND sysindexes.id = syscolumns.id AND sysobjects.name = sysindexes.name AND sysindexkeys.id = syscolumns.id AND sysindexkeys.indid = sysindexes.indid AND syscolumns.colid = sysindexkeys.colid注意:這是在4張系統表中尋找的,關系比較復雜,大致可以表示為:
syscolumns中存有表中的列信息和表id,sysobjects表中存有主鍵名字(即PK_Table類似)和表id,sysindexes中存有主鍵名字和表id和index編號,sysindexkeys中存有表id和index編號和列編號,一項一項對應起來後就能找到列名了,呼~5、得到表中列的描述內容:select a.name,g.value from syscolumns as a left join sysproperties g on a.id=g.id AND a.colid = g.smallid where a.id='表id'

Ⅳ sql server 怎麼查詢數據欄位說明

SQL Server的注釋屬於擴展屬性,可以從sys.extended_properties視圖中查看
SELECT * FROM sys.extended_properties WHERE major_id=OBJECT_ID('WMSBASCUS')

結果是WMSBASCUS表所有列的注釋信息
minor_id是列的Id,可以從sys.columns中查看錶的列id
通過sys.extended_properties和sys.columns進行關聯可以查看某個具體列的信息

SELECT c.name,p.value

FROM sys.extended_properties p ,sys.columns c

WHERE p.major_id=OBJECT_ID('WMSBASCUS') and c.name='CUSTNO'
and p.major_id=c.object_id and p.minor_id=c.column_id

Ⅵ 如何從SQL Server 中取得欄位說明

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

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 "<" & err.description & ">"
else
Response.Write "Description = " & dsc
end if
Set Catalog = nothing
%>

Ⅶ 如何使用sql語句,查詢oracle的表注釋等信息

使用sql語句,查詢oracle的表注釋等信息方法如下:

一、Oracle 下讀取表/欄位的備注信息,Oracle 通過COMMENT ON TABLE / COMMENT ON COLUMN 追加表/欄位的備注。

  1. COMMENT ON TABLE ,MR_DEPT,IS 。

  2. COMMENT ON COLUMN ,MR_DEPTDEPT_ID,IS。

  3. COMMENT ON COLUMN ,MR_DEPT"PARENT_ID,IS。

  4. COMMENT ON COLUMN ,MR_DEPT"DEPT_NAME,IS 。

  5. COMMENT ON COLUMN ,MR_DEPT"STATUS,IS 。

二、查詢表的備注信息

  1. SELECT。

  2. TABLE_NAME。

  3. TABLE_TYPE。

  4. COMMENTS。

  5. FROM。

  6. USER_TAB_COMMENTS。

  7. WHERE-TABLE_NAME -MR_DEPT。

三、查詢欄位的備注信息

  1. TABLE_NAME。

  2. COLUMN_NAME。

  3. COMMENTS

  4. FROM。

  5. USER_COL_COMMENTS。

  6. WHERE-TABLE_NAME - 'MR_DEPT。

Ⅷ 如何獲得SQL資料庫中備注欄位的內容

您好:

附一個語句,獲取表欄位屬性和注釋。

SELECT表名		=CASEWHENa.colorder=1THENd.nameELSE''END
,表說明 =CASEWHENa.colorder=1THENISNULL(f.value,'')ELSE''END
,欄位序號 =a.colorder
,欄位名 =a.name
,標識 =CASEWHENCOLUMNPROPERTY(a.id,a.name,'IsIdentity')=1THEN'√'ELSE''END
,主鍵 =CASEWHENEXISTS(='PK'ANDnameIN(
(
=a.idANDcolid=a.colid
)))THEN'√'ELSE''END
,類型 =b.name
,佔用位元組 =a.length
,長度 =COLUMNPROPERTY(a.id,a.name,'PRECISION')
,小數位數 =ISNULL(COLUMNPROPERTY(a.id,a.name,'Scale'),0)
,允許空 =CASEWHENa.isnullable=1THEN'√'ELSE''END
,默認值 =ISNULL(e.text,'')
,欄位說明 =ISNULL(g.[value],'')
FROMsyscolumnsa
LEFTJOINsystypesbONa.xusertype=b.xusertype
INNERJOINsysobjectsdONa.id=d.idANDd.xtype='U'ANDd.name<>'dtproperties'
LEFTJOINsyscommentseONa.cdefault=e.id
LEFTJOINsys.extended_propertiesgONa.id=g.major_idANDa.colid=g.minor_id
LEFTJOINsys.extended_propertiesfONd.id=f.major_idANDf.minor_id=0
--WHEREd.name='orders'--如果只查詢指定表,加上此條件
ORDERBYa.id,a.colorder