sql 2012中获取表的信息,包含字段的描述

1.获取数据库中的表

select name from sysobjects where type=‘U‘

2.获取表字段(此处是Route表)

Select name from syscolumns Where ID=OBJECT_ID(‘Route‘)

3.获取表中字段的描述

SELECT   value  FROM   ::fn_listextendedproperty (NULL, ‘user‘, ‘dbo‘, ‘table‘, ‘Route‘, ‘column‘, default)

4.获取表的信息的所有信息如下图

select   b.[value] from sys.columns a left join sys.extended_properties b on a.object_id=b.major_id
and a.column_id=b.minor_id inner join sysobjects c on a.column_id=c.id
and a.[name]=‘列名‘ and c.[name]=‘表名‘
SELECT
表名=case   when   a.colorder=1   then   d.name   else   ‘‘   end,
表说明=case   when   a.colorder=1   then   isnull(f.value,‘‘)   else   ‘‘   end,
字段序号=a.colorder,
字段名=a.name,
标识=case   when   COLUMNPROPERTY(   a.id,a.name,‘IsIdentity‘)=1   then   ‘√‘else   ‘‘   end,
主键=case   when   exists(SELECT   1   FROM   sysobjects   where   xtype=‘PK‘   and   name   in   (
SELECT   name   FROM   sysindexes   WHERE   indid   in(
SELECT   indid   FROM   sysindexkeys   WHERE   id   =   a.id   AND   colid=a.colid
)))   then   ‘√‘   else   ‘‘   end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,‘PRECISION‘),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,‘Scale‘),0),
允许空=case   when   a.isnullable=1   then   ‘√‘else   ‘‘   end,
默认值=isnull(e.text,‘‘),
字段说明=isnull(g.[value],‘‘)
FROM   syscolumns   a
left   join   systypes   b   on   a.xusertype=b.xusertype
inner   join   sysobjects   d   on   a.id=d.id     and   d.xtype=‘U‘   and     d.name<>‘dtproperties‘
left   join   syscomments   e   on   a.cdefault=e.id
left   join   sys.extended_properties   g   on   a.id=g.major_id   and   a.colid=g.minor_id
left   join   sys.extended_properties   f   on   d.id=f.major_id   and   f.minor_id=0
--where   d.name=‘orders‘         --如果只查询指定表,加上此条件
order   by   a.id,a.colorder

如下图

5.获取一个表的表名,字段名,数据类型,字段说明的简写SQL:

SELECT
    [TableName] = i_s.TABLE_NAME,
    [ColumnName] = i_s.COLUMN_NAME,
    [Description] = s.value,
    [DataType]=i_s.DATA_TYPE
FROM
    INFORMATION_SCHEMA.COLUMNS i_s
LEFT OUTER JOIN
    sys.extended_properties s
ON
    s.major_id = OBJECT_ID(i_s.TABLE_SCHEMA+‘.‘+i_s.TABLE_NAME)
   AND s.minor_id = 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 = ‘表名‘ AND i_s.TABLE_SCHEMA=‘架构名‘
ORDER BY
    i_s.TABLE_NAME, i_s.ORDINAL_POSITION
时间: 2024-10-17 12:15:54

sql 2012中获取表的信息,包含字段的描述的相关文章

SQL SERVER中获取表间主外键关系

sql server 2008中的主外键关系获取方式: 转自:http://www.cnblogs.com/ke10/archive/2012/06/11/2544655.html SELECT OBJECT_NAME(con.constid) '关系名' ,OBJECT_NAME(sf.fkeyid) '主键表' ,fcol.name '主键' ,OBJECT_NAME(sf.rkeyid) '外键表' ,rcol.name '外键',st.name'数据类型'FROM sysforeignk

获取表的信息,包含字段的描述

--获取数据库中的表select name from sysobjects where type='U'--获取表字段 Select name from syscolumns ----------------------------------------------------------------------------------------------------------------------- --获取表的信息的所有信息,数据库中所有表的字段信息 select b.[value

SQL Server 索引和表体系结构(包含列索引)

原文:SQL Server 索引和表体系结构(包含列索引) 包含列索引 概述 包含列索引也是非聚集索引,索引结构跟聚集索引结构是一样,有一点不同的地方就是包含列索引的非键列只存储在叶子节点:包含列索引的列分为键列和非键列,所谓的非键列就是INCLUDE中包含的列,至少需要有一个键列,且键列和非键列不允许重复,非键列最多允许1023列(也就是表的最多列-1),由于索引键列(不包括非键)必须遵守现有索引大小的限制(最大键列数为 16,总索引键大小为 900 字节)的要求所以引进了包含列索引. 正文

SQL Server中多表连接时驱动顺序对性能的影响

原文:SQL Server中多表连接时驱动顺序对性能的影响 本文出处:http://www.cnblogs.com/wy123/p/7106861.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 最近在SQL Server中多次遇到开发人员提交过来的有性能问题的SQL,其表面的原因是表之间去的驱动顺序造成的性能问题,具体表现在(已排除其他因素影响的情况下),存储过程偶发性的执行时间超出预期,甚至在调试的时候

PostgreSQL数据库中获取表主键名称

PostgreSQL数据库中获取表主键名称 一.如下表示,要获取teacher表的主键信息: select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename from pg_constraint inner join pg_class on pg_constraint.conrelid = pg_class.oid inner join pg_attribute

快速查看SQL Server 中各表的数据量以及占用空间大小

快速查看SQL Server 中各表的数据量以及占用空间大小. CREATE TABLE #T (NAME nvarchar(100),ROWS char(20),reserved varchar(18) ,Data varchar(18) ,index_size varchar(18) ,Unused varchar(18) ) GO INSERT #T EXEC SP_MSFOREACHTABLE 'EXEC sp_spaceused "?"' SELECT * FROM #T O

strus2中获取表单数据 两种方式 属性驱动 和模型驱动

strus2中获取表单数据 两种方式 属性驱动 和模型驱动 属性驱动 /** * 当前请求的action在栈顶,ss是栈顶的元素,所以可以利用setValue方法赋值* 如果一个属性在对象栈,在页面上可以根据name属性进行回显*/ /** * 属性驱动实现的条件:* 1.当前请求的action在栈顶,所以action中的属性就暴漏出来了* 2.获取页面上表单的元素,整合成一个map * 3.调用setValue方法赋值*/ 1 package cn.itcast.struts2.sh; 2 3

在Action中获取表单提交数据

-----------------siwuxie095 在 Action 中获取表单提交数据 1.之前的 Web 阶段是提交表单到 Servlet,在其中使用 Request 对象 的方法获取数据 2.Struts2 是提交表单到 Action,但 Action 没有 Request 对象,不能 直接使用 Request 对象获取数据 「可以间接使用 Request 对象获取数据」 3.Action 获取表单提交数据主要有三种方式: (1)使用 ActionContext 类 (2)使用 Ser

Access and SQL Server 中的表转置

样表如下: Student ID sName Subject Score 1 张三 Chinese 80 2 张三 Math 90 3 张三 English 85 4 李四 Chinese 85 5 李四 Math 92 6 李四 English 82 Access: TRANSFORM Avg(Student.Score) AS ScoreOfAvgSELECT Student.sNameFROM StudentGROUP BY Student.sNamePIVOT Student.Subje