`
codsoul
  • 浏览: 212958 次
  • 性别: 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';

分享到:
评论

相关推荐

    用友U8数据库维护表名参照表.doc

    【用友U8数据库维护表名参照表】是针对用友U8财务软件数据库中的一系列关键表的详细描述,这些表主要用于维护和管理财务数据。以下是对这些表及其重要字段的详细解释: 1. Accinformation(账套参数表): - ...

    sql语句获取数据库中的数据库表列.doc

    在进行数据库管理与开发过程中,经常需要查询数据库中的各种信息,例如所有的数据库、数据表、表中的列以及相关的注释说明等。本文将详细介绍如何在 SQL Server 中通过 SQL 语句来获取这些重要的元数据信息。 #### ...

    数据库中存储过程的自动化生成.doc

    数据库中存储过程的自动化生成是一个重要的数据库运维和开发策略,尤其在处理大规模SQL项目时能显著提升效率。存储过程是预编译的SQL语句集合,用于执行特定的任务,如数据检索、插入、更新和删除。在大型数据库系统...

    怎样列出数据库的全部表名.doc

    `sysobjects`视图包含了数据库中所有对象的信息,包括表、存储过程、视图等。对于表,其类型通常表示为'u',代表用户定义的对象。因此,一个简单的SQL查询可以如下所示: ```sql SELECT name FROM sysobjects ...

    SQL数据库所有表中查找关键字.doc

    存储过程的主要逻辑是使用游标遍历数据库中的所有表和列,然后使用动态 SQL 语句来构建搜索语句。该搜索语句使用 LIKE 操作符来搜索指定的关键字,并将搜索结果插入到临时表 #t 中。最后,存储过程返回临时表 #t 中...

    数据库图书信息管理数据库SQL语句.doc

    "数据库图书信息管理数据库SQL语句.doc" 本资源文件提供了一个数据库图书信息管理系统的设计和实现,涵盖了数据库设计、SQL语句编写、数据表创建、索引创建、数据查询等多个方面的知识点。 知识点1:数据库设计 *...

    成人本科《SQL数据库系统及应用》.doc

    SQL数据库系统及应用是计算机科学领域的重要组成部分,尤其对于成人本科阶段的学习而言,掌握SQL是提升数据分析和管理能力的关键。以下是关于SQL数据库的一些核心知识点: 1. **第一范式**:在关系数据库的设计中,...

    ORACLE中用存储过程生成SQL代码.doc

    在Oracle数据库中,存储过程是一种强大的工具,可以用于执行复杂的数据库操作,包括生成SQL代码。在上述场景中,我们看到一个名为`AA_GENDML`的存储过程被创建,其目的是自动化生成针对特定表的INSERT、SELECT、...

    怎么写sql语句将Excel的数据插入到SQL Server数据库.doc

    这段代码会连接到指定路径的Excel文件,并从名为"Sheet1"的工作表中获取所有数据。 2. **将Excel数据导入SQL Server:** 若要将Excel数据插入到SQL Server的表中,可以创建一个新的表并使用`SELECT INTO`语句。...

    SQL-Server数据库程序设计认证试题及答案.doc

    一旦配置好链接服务器(通过`sp_addlinkedserver`存储过程),就可以像操作本地表一样直接引用远程表,例如`SELECT...FROM [远程服务器名].[数据库名].[所有者].[表名]`。题目中的选项C展示了这一用法。另外,`...

    区分SQL数据库数据表大小之我见.doc

    ### 区分SQL数据库数据表大小之我见 在日常的数据库管理与审计工作中,了解数据库中各个数据表的大小是非常重要的。这不仅有助于优化存储空间的使用,还能帮助管理员更好地进行性能调优和资源规划。然而,在SQL ...

    (完整word版)数据库练习题(答案)...doc

    数据库是存储和管理数据的核心工具,对于理解和操作数据库,熟悉SQL语言至关重要。SQL(Structured Query Language)是用于处理关系数据库的标准编程语言,包括查询、插入、更新和删除数据,以及创建和修改数据库...

    SQL数据库外文翻译.doc

    这篇文档"SQL数据库外文翻译.doc"主要介绍了如何在嵌入式应用中使用SQL语句来控制数据库,涵盖了设置、连接和关闭数据库的基本操作。 首先,我们要了解SQL中的三个关键数据库语句: 1. `SET DATABASE` 语句:它...

    最简洁的数据库连接方法!(ACCESS数据库).doc

    在IT行业中,数据库连接是开发过程中必不可少的一环,特别是在处理Web应用程序时。本文将详细讲解如何使用Access数据库进行最简洁的连接方法。Access数据库是一种常用的轻量级数据库管理系统,适用于小型到中型企业...

    黑大数据库原理实验及课程设计指导文本.doc.doc

    这涉及到对关系数据库语言的理解,如SQL,以及数据库模式的构建。 2. **数据结构与表定义**: - 表的创建:学生需实现输入任意表名和字段定义,包括字段数量、名称、数据类型和长度。这涉及到对数据库模式的灵活...

    SQL SERVER 数据库迁移到ORACLE配置 SQL SERVER 数据库转到ORACLE配置.doc

    在将SQL SERVER数据库迁移到ORACLE的过程中,涉及多个步骤和注意事项。以下是对这些步骤的详细说明: 1. **配置ORACLE客户端**: - 使用Net Configuration Assistant进行配置,这是一个图形化工具,帮助设置与...

    分页存储过程实例分享.doc

    在获取记录时,存储过程会根据`@condition`参数来过滤记录,如果`@condition`不为空,则将其添加到SQL语句中。最后,存储过程会根据`@pageSize`参数来限制获取的记录数量。 优点 该存储过程的优点在于: 1. 能够...

    关系数据库标准语言SQL.doc

    在Microsoft SQL Server中,使用Transact-SQL(T-SQL)作为其SQL方言,它扩展了标准SQL的功能,增加了如存储过程、触发器、事务控制等高级特性。T-SQL的DDL、DML和DCL不仅包括了上述的基础操作,还包括了如下内容: ...

    数据库基本知识和基础sql语句.doc

    在本文中,我们将深入探讨数据库的基本概念、SQL语言以及MySQL数据库的相关知识。 首先,数据库的发展经历了几个阶段。早期,数据是以磁盘文件的形式存储,缺乏有效的管理和组织。随后出现了层次结构模型和网状结构...

    SQL数据库语句大全完全整理版.doc

    SQL数据库语句大全完全整理版 本资源摘要信息涵盖了 SQL 数据库语句大全的完整整理版,包括数据操作、数据定义、数据控制、事务控制、程序化 SQL 等方面的知识点。 一、数据操作 数据操作是 SQL 语句的核心部分,...

Global site tag (gtag.js) - Google Analytics