`
codsoul
  • 浏览: 209310 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

(转)SQL获取所有数据库名、表名、储存过程以及参数列表.doc

    博客分类:
  • SQL
阅读更多
1.获取所有用户名:
SELECT name FROM Sysusers where status='2' and islogin='1'
islogin='1'表示帐户
islogin='0'表示角色
status='2'表示用户帐户
status='0'表示糸统帐户
2.获取所有数据库名:
SELECT Name FROM Master..SysDatabases ORDER BY Name
3.获取所有表名
SELECT Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name
XType='U':表示所有用户表;
XType='S':表示所有系统表;
4.获取所有字段名:
SELECT Name FROM SysColumns WHERE id=Object_Id('TableName')
5.获取数据库所有类型
select name from systypes
6.获取主键字段
SELECT  name FROM SysColumns WHERE id=Object_Id('表名') and colid=(select top 1 keyno from sysindexkeys where id=Object_Id('表名'))


[综合网络资料整理]
1.获取所有数据库名:
   (1)、Select Name FROM Master..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编号和列编号,一项一项对应起来后就能找到列名了。

另外的SQL代码
select syscolumns.name, systypes.name, syscolumns.length from syscolumns   
  left join systypes on syscolumns. xusertype =systypes. xusertype 
  where id=(select id from sysobjects where name='订货主档');
go;
或者用这样的写法,执行结果一样:
select syscolumns.name, systypes.name, syscolumns.length from syscolumns,systypes
where (syscolumns.id=object_id('订货主档') and syscolumns.xusertype=systypes.xusertype)
order by syscolumns.colorder;
go
执行结果:(字段只出现一次,正常)
订单号码    int 4
客户编号    nvarchar    10
员工编号    int 4
订单日期    datetime    8
要货日期    datetime    8
送货日期    datetime    8
送货方式    int 4
运费    money   8
收货人  nvarchar    80
送货地址    nvarchar    120
送货城市    nvarchar    30
送货行政区  nvarchar    30
送货邮政编码    nvarchar    20
送货国家地区    nvarchar    30


select syscolumns.name, systypes.name, syscolumns.length from syscolumns   
  left join systypes on syscolumns.xtype=systypes.xtype 
  where id=(select id from sysobjects where name='订货主档');
go;
执行结果:(部分字段出现两次,数据类型不同)
订单号码    int 4
客户编号    nvarchar   10
客户编号    sysname    10
员工编号    int 4
订单日期    datetime   8
订单日期    出生日期类型    8
要货日期    datetime   8
要货日期    出生日期类型    8
送货日期    datetime   8
送货日期    出生日期类型    8
送货方式    int 4
运费    money  8
运费    薪水类型    8
收货人  nvarchar   80
收货人  sysname    80
送货地址    nvarchar   120
送货地址    sysname    120
送货城市    nvarchar   30
送货城市    sysname    30
送货行政区  nvarchar   30
送货行政区  sysname    30
送货邮政编码    nvarchar   20
送货邮政编码    sysname    20
送货国家地区    nvarchar   30
送货国家地区    sysname    30
查询存储过程DepartmentSalaryInfo所有的信息,信息包含在系统视图syscolumns,systypes中
select syscolumns.*, systypes.* from syscolumns   
  left join systypes on syscolumns.xusertype=systypes.xusertype 
  where id=(select id from sysobjects where name='DepartmentSalaryInfo');
go


exec   sp_procedure_params_rowset   @procedure_name   =   'DepartmentSalaryInfo';
go
执行结果:
北风贸易    dbo DepartmentSalaryInfo;1   @RETURN_VALUE 0   4   0   NULL   0   3   NULL   NULL   10    NULL   NULL   int int
北风贸易    dbo DepartmentSalaryInfo;1   @department   1   1   0   NULL   1   129 10  10  NULL    NULL   NULL   varchar    varchar
北风贸易    dbo DepartmentSalaryInfo;1   @average   2   2   0   NULL   1   6   NULL   NULL   19    NULL   NULL   money  money
北风贸易    dbo DepartmentSalaryInfo;1   @maximum   3   2   0   NULL   1   6   NULL   NULL   19    NULL   NULL   money  money
北风贸易    dbo DepartmentSalaryInfo;1   @minimum   4   2   0   NULL   1   6   NULL   NULL   19    NULL   NULL   money  money

--存储过程中的参数名,参数类型,参数长度
select syscolumns.name, systypes.name, syscolumns.length from syscolumns   
  left join systypes on syscolumns.xusertype=systypes.xusertype 
  where id=(select id from sysobjects where name='DepartmentSalaryInfo');

1:获取当前数据库中的所有用户表
select Name from sysobjects where xtype='u' and status>=0
2:获取某一个表的所有字段
select name from syscolumns where id=object_id('表名')
3:查询用户创建的所有数据库
select * from master..sysdatabases D where sid not in(select sid from
master..syslogins where name='sa')
或者
select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01
4:查询某一个表的字段和数据类型
select column_name,data_type from information_schema.columns
where table_name = '表名'
[n].[标题]:
Select * From TableName Order By CustomerName
[n].[标题]:
8.如何修改数据库的名称:
sp_renamedb 'old_name', 'new_name'
9.只复制一个表结构,不复制数据
select top 0 * into [t1] from [t2]
10.连接远程数据库
select * from OPENDATASOURCE('SQLOLEDB','Data Source=远程ip;User
ID=sa;Password=密码').库名.dbo.表名
11.获取当前oracle数据库中的所有表
select table_name from user_tables
12 .获取当前oracle表中所有字段的类型
SELECT
      COLUMN_NAME,DATA_TYPE,DATA_LENGTH,NULLABLE
FROM
         USER_TAB_COLS where TABLE_NAME='teacher';

分享到:
评论

相关推荐

    数据库设计参考模板.doc

    图表的名称 = "dg" + 图表内容标识(首字大写) 8、SQL语句的编写规范 数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下: 关键字大写: 在SQL语句的编写中,凡是SQL语句的关键字一律大写,...

    商品销售系统数据库设计.doc

    Microsoft SQL Server 2008 5 设计工具 PowerDesign 6 编程工具 JDBC访问数据库 7 数据库命名规则 数据表:以"t_"开头,后接表名 视图名:以"v_"开头,后接视图名 存储过程名:以"p_"开头,后接过程名 索引名:以"i_...

    在线考试系统数据库设计(表)(4).doc

    在线考试系统数据库设计 "数据库名 "OnLineExam " "开发环境 "Microsoft SQL Server 2000 " "表名 "说明 " "Users "此表存储管理员与教师的信息 " "StudentInfo "此表存储学生的基本信息 " "ExamManage "此表保存每...

    数据库设计规范-模板.doc

    SQL Server数据库命名规范1 SQL Server数据库命名规范 良好的命名习惯是一种美德,下面是关于数据库命名的规范: 数据库命名规范: 1. 数据库名: 1.1)用产品或项目的名字命名; 1.2)采用Pascal Case,如...

    高校成绩管理数据库系统的设计与实现.doc

    基本目的 以SQL SERVER数据库管理系统为平台,通过设计数据库概念模型、逻辑模型以及利用标准SQL语 言的数据库实现,掌握关系数据库系统的设计与实现方法,增强数据库设计和数据库应 用系统开发能力。 2. 用户需求 ...

    在线考试系统数据库设计(表)(3).doc

    在线考试系统数据库设计 "数据库名 "OnLineExam " "开发环境 "Microsoft SQL Server 2000 " "表名 "说明 " "Users "此表存储管理员与教师的信息 " "StudentInfo "此表存储学生的基本信息 " "ExamManage "此表保存每...

    sql数据库设计课程习题管理系统.doc

    四、物理结构设计 设计要求:针对关系模式设计具体的二维表存储形式,包括属性名、数据类型、长度 等,针对具体关系模式可以以如下二维表形式给出物理结构: 表名(最好是纯英文) "属性名 "数据类型及长度"是否可...

    使用Visio进行数据库设计.doc

    "使用Visio进行数据库设计 " 内容提纲: 1、数据库模型的定义 2、VISIO中数据库模型的分类 3、建立逻辑模型 4、建立物理模型 5、Sql Server导入数据到Visio "VISIO提供了强大的数据库建模功能,利用VISIO可以很方便的...

    数据库管理规范.doc

    3.1.2视图命名:V_相关表名(或者根据需要另取名字) 3.1.3存储过程命名:PRO_存储过程名(用英文表达存储过程意义) 3.1.4函数命名:FUN_函数名称(用英文表达函数作用) 3.1.5触发器命名:TRI_触发器名称(用英文...

    sql总结.doc

    存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 (2)存储过程的基本写法...

    数据库设计中英文术语表.doc

    在SQL中,可以用别名替换表名。 3. Alternate keys(备用键,ER/关系模型):在实体/表中没有被选为主健的候选键。 4. Anomalies(异常)参见更新异常(update anomalies) 5. Application design(应用程序设计):...

    数据库系统实验课实验报告.doc

    " " "使用命令完成下列扣作(1)查找用户所有表的表名(2)查看每" " "张表的结构(要求把每张表的结构截图放到实验报告中)(3) " " "查看表takes的约束信息 " " "修改表结构 " " "在instructor表中增加列存储教师...

    数据库课程设计学生宿舍管理系统.doc

    目标和任务 (1)了解目前宿舍管理的现状以及SQL Server 2008的功能和特点。 (2)练习E-R模型与关系模型的转换。 2.数据库应有的功能 学生基本信息存储和查询 每一栋宿舍楼中宿舍信息的存储和查询 宿舍基本信息的...

    网上购物系统数据库设计.doc

    数据库设计 数据库设计(sql 2005)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立 数据库的过程。 数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建议中的核心技术。 由于...

    数据库安全审计系统.doc

    · 支持对登录用户、数据库表名、字段名及关键字等内容进行多种条件组合的规则设定, 形成灵活的审计策略。 · 提供包括记录、报警、中断和向网管系统报警等多种响应措施。 · 具备强大的查询统计功能,可生成专业...

    网吧管理系统数据库设计报告.doc

    数据库设计过程中采用Micrsoft公司的Visio创建进销 存数据库的ER图,并生成数据库脚本文件"网吧管理系统数据库设计.DDL"。其中SQL Server2005身份验证,超级用户的用户名sa,密码均为123;SQL Server2005服务器的...

    Oracle数据库设计规范建议.doc

    3.2.4 存储过程命名:存储过程名_PRO(用英文表达存储过程意义); 3.2.5 函数命名:函数名称_FUN(用英文表达函数作用); 3.2.6 触发器命名:触发器名称_TRI(用英文表达触发器作用); 3.2.7 索引命名:表名_...

    关系数据库设计.doc

    如标题所示,本文旨在分享一名开发者的数据库设计经验,并不涉及复 杂的SQL语句或DBMS使用,因此也不会局限到某种DBMS产品上。真切地希望这篇文章对开 发者能有所帮助,也希望读者能帮助笔者查漏补缺。 一?Codd的...

    系统数据库设计文档模板.doc

    7 4.4.1 序列1 7 4.4.2 序列2 8 4.5 视图实体 8 4.5.1 视图1 8 4.5.2 视图2 8 4.6 存储过程实体 8 4.6.1 存储过程1 8 4.6.2 存储过程2 8 5 安全设计 8 6 备注 9 引言 编写目的 [说明编写这份系统数据库设计文档的...

Global site tag (gtag.js) - Google Analytics