Ⅰ 怎样获取数据表中指定字段的注释(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 追加表/字段的备注。
COMMENT ON TABLE ,MR_DEPT,IS 。
COMMENT ON COLUMN ,MR_DEPTDEPT_ID,IS。
COMMENT ON COLUMN ,MR_DEPT"PARENT_ID,IS。
COMMENT ON COLUMN ,MR_DEPT"DEPT_NAME,IS 。
COMMENT ON COLUMN ,MR_DEPT"STATUS,IS 。
二、查询表的备注信息
SELECT。
TABLE_NAME。
TABLE_TYPE。
COMMENTS。
FROM。
USER_TAB_COMMENTS。
WHERE-TABLE_NAME -MR_DEPT。
三、查询字段的备注信息
TABLE_NAME。
COLUMN_NAME。
COMMENTS
FROM。
USER_COL_COMMENTS。
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