查询sql2005&2008全部表信息

 1 如果是查询sql server 2000,把sys.extended_properties修改为SysProperties
 2
 3 SELECT
 4 表名       = CASE WHEN A.COLORDER=1 THEN D.NAME ELSE ‘‘ END,
 5 表说明     = CASE WHEN A.COLORDER=1 THEN ISNULL(F.VALUE,‘‘) ELSE ‘‘ END,
 6 列序号   = A.COLORDER,
 7 列名     = A.NAME,
 8 标识       = CASE WHEN COLUMNPROPERTY( A.ID,A.NAME,‘ISIDENTITY‘)=1 THEN ‘√‘ELSE ‘‘ END,
 9 主鍵       = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE=‘PK‘ AND PARENT_OBJ=A.ID AND NAME IN (
10 SELECT NAME FROM SYSINDEXES WHERE INDID IN(
11 SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN ‘√‘ ELSE ‘‘ END,
12 类型       = B.NAME,
13 字节数 = A.LENGTH,
14 长度       = COLUMNPROPERTY(A.ID,A.NAME,‘PRECISION‘),
15 小数位数   = ISNULL(COLUMNPROPERTY(A.ID,A.NAME,‘SCALE‘),0),
16 允许空     = CASE WHEN A.ISNULLABLE=1 THEN ‘√‘ELSE ‘‘ END,
17 默认值     = ISNULL(E.TEXT,‘‘),
18 字段说明   = ISNULL(G.[VALUE],‘‘)
19 FROM
20 SYSCOLUMNS A
21 LEFT JOIN
22 SYSTYPES B
23 ON
24 A.XUSERTYPE=B.XUSERTYPE
25 INNER JOIN
26 SYSOBJECTS D
27 ON
28 A.ID=D.ID  AND D.XTYPE=‘U‘ AND  D.NAME<>‘DTPROPERTIES‘
29 LEFT JOIN
30 SYSCOMMENTS E
31 ON
32 A.CDEFAULT=E.ID
33 LEFT JOIN
34 sys.extended_properties G
35 ON
36 A.ID=G.major_id AND A.COLID=G.minor_id
37 LEFT JOIN
38 sys.extended_properties F
39 ON
40 D.ID=F.major_id AND F.minor_id=0
41 ORDER BY
42 A.ID,A.COLORDER
时间: 2024-10-08 02:25:11

查询sql2005&2008全部表信息的相关文章

【mysql元数据库】使用information_schema.tables查询数据库和数据表信息

概述 对于mysql和Infobright等数据库,information_schema数据库中的表都是只读的,不能进行更新.删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没有关联的文件. information_schema.tables存储了数据表的元数据信息,下面对常用的字段进行介绍: table_schema: 记录数据库名: table_name: 记录数据表名: engine : 存储引擎: table_rows: 关于表的粗略行估计: data_lengt

SQL2012分页offset fetch 比较SQL2005/2008的ROW_Number

SQL2005/2008的Row_Number http://www.cnblogs.com/Snowfun/archive/2011/10/10/2205772.html 1.OFFSET和FETCH:这两个关键字在MSDN原型使用方式如代码1所示 OFFSET使用起来很简单,首先在OFFSET之后指定从哪条记录开始取.其中,取值的数可以是常量也可以是变量或者表达式.然后通过FETCH关键字指定取多少条记录.其中,FIRST和NEXT是同义词,和前面的ROW和ROWS一样,它们可以互相替换.同

获取PE文件的输入表信息

输入表是PE文件结构中不可或缺的部分,输入表也称之为"导入表". 要想了解输入表,首先还得先从DLL文件入手.日常生活中我们会看见一些大型软件有很多的DLL格式的文件,这些文件中有很多的导入函数,这些函数不会直接被执行.当一个程序(EXE)运行时,导入函数是被程序调用执行的,其执行的代码是不在主程序(EXE)中的一小部分函数,其真正的代码却在DLL文件中.这时我们就会想,那么EXE主程序是如何找到这些需要导入的函数呢,这就要归结于“输入表”了,输入表就相当于EXE文件与DLL文件沟通的

数据库SQL Server2012笔记(四)——多表查询、子查询、分页查询、用查询结果创建新表和外连接

1.多表查询 1)笛卡尔集: select  *  from  表名1,表名2 select  *  from  表名1,表名2  where   表名1.字段名=表名2.字段名 注: 若有两张表有相同名字的字段,则使用时需带表名(别名). order  by  置于where 条件之后. 2)自连接:同一张表的连接查询,将一张表视为两张表或多张表. eg:显示公司每个员工名字和他的上级的名字.将emp表看做两张表worker和boss select  worker.ename  雇员,boss

5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算

 1  Oracle基于用户的管理方案 2 DDL语句可以管理数据库的对象有:视图   索引  序列  同义词   约束 3  创建一个表,有2个条件(1 有权限:2有表空间) Oracle给你提供了默认的resource. 4 创建表,表信息的增删改,Oracle回收站 DDL 管理数据库的对象 表 视图 索引 序列 同义词 约束(..... ) oracle基于用户的管理方案 借助于管理工具可以方便 看到数据库各个对象.... 1 创建一个表 2个条件(1 有权限  2 有表空间) or

(转)java读取数据库表信息,子段

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /*** * 2014-07-21日: * oracle数据

SQL查询各阶段的统计信息

        我们常常会遇到各种分类统计问题,需要将这些结果一次显示出来.这次老师提出的要求是我想看60分以下多少人,60~70多少人,70~80多少人,80~90多少人,90~100多少人.他们以前做的统计信息是,相同分数的有多少人,不同的分数都会在chart图表里显示一列,这样的效果通常是不被需要的,而且数据多的时候也会乱七八糟,没有美感,所以老师提出上面开始的要求.         他们以前的效果对应的sql语句是: <span style="font-size:18px;&quo

java 查询oracle数据库所有表DatabaseMetaData的用法

DatabaseMetaData的用法(转) 一 . 得到这个对象的实例 Connection con ; con = DriverManager.getConnection(url,userName,password); DatabaseMetaData dbmd = con.getMetaData(); 二. 方法getTables的用法原型: ResultSet DatabaseMetaData.getTables(String catalog,String schema,String t

查询语句 select [单表操作]

---SQL单表简单查询1.单表操作&别名的使用 1 --查询表的所有数据:select * from 表名;通配符*代表所有 2 select * from emp; 1 --查询表中指定字段的值:select 字段名1,字段名2,... from 表名; 2 select empno,ename,job,sal,hiredate,comm from emp; 1 --查询结果中的字段使用别名:作用[方便查看查询结果] 2 --在字段名后使用关键字 字段名 as "别名" 3