`

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)这里为了重点突出某些重要内容,选取了其中几项信息输出。
    
bsyscolumns表中只含有数据类型编号,要获取完整的名字需要从systypes表中找,一般用户使用的数据类型用xusertype对应比较好,不会出现一对多的情况。
    
csyscolumns.length得到的是物理内存的长度,所以nvarcharvarchar等类型在数据库中的显示是这个的一半。

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
中存有表中的列信息和表idsysobjects表中存有主键名字(即PK_Table类似)和表idsysindexes中存 有主键名字和表idindex编号,sysindexkeys中存有表idindex编号和列编号,一项一项对应起来后就能找到列名了。

 

另外的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所有的信息,信息包含在系统视图syscolumnssystypes

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';
分享到:
评论

相关推荐

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

    以下是一些关键知识点,涵盖了如何获取SQL服务器中的数据库名、表名、存储过程以及参数列表: 1. 获取所有数据库名: - 使用`SELECT Name FROM Master..SysDatabases ORDER BY Name`语句,可以从`Master`数据库的`...

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

    `Master`是SQL Server中的一个系统数据库,`SysDatabases`视图用于存储所有数据库的信息。 3. **表名获取**: - 获取所有用户表:`SELECT Name FROM DatabaseName..SysObjects WHERE XType='U' ORDER BY Name`。`...

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

    2. **获取所有数据库名**: 通过执行`SELECT Name FROM Master..SysDatabases ORDER BY Name`来获取。这会按名称排序列出所有的数据库。 3. **获取所有表名**: 可以使用`SELECT Name FROM DatabaseName..SysObjects ...

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

    以下是一些关键知识点,主要涉及如何获取SQL数据库中的各种元数据,如用户名、数据库名、表名、字段名以及主键信息。 1. **获取所有用户名**: 使用`SELECT name FROM Sysusers`语句,可以通过筛选`status='2'`和`...

    SQL获取数据库的数据库名,表名,存储过程

    本文将详细介绍如何使用SQL语句来获取数据库的名称、表名以及存储过程等重要信息。以下内容基于提供的部分示例进行展开,并加入了一些补充说明。 #### 一、获取所有用户名 在SQL Server中,可以通过查询`sysusers`...

    Sql Server获取SQL所有数据库名、所有表名、所有字段名.docx

    Sql Server 获取 SQL 所有数据库名、所有表名、所有字段名 Sql Server 是一种关系数据库管理系统,用于存储和管理大量的数据。为了更好地管理和维护数据库,需要获取数据库中的各种信息,例如数据库名、表名、字段...

    获取数据库表名和字段名.rar

    这个名为"获取数据库表名和字段名.rar"的压缩包文件很可能包含了用于这一目的的代码或工具。下面我们将深入探讨如何在不同的数据库系统中获取这些信息,并讨论其在实际工作中的应用。 1. 数据库结构概述: - 表:...

    PL/SQL实现获得所有表名及列名到表

    本文将详细探讨如何使用PL/SQL来实现获取数据库中所有表名及其列名,并存储到一个特定的表中。 ### 一、理解需求与设计思路 #### 1. 需求分析: 我们的目标是创建一个PL/SQL程序,该程序能够遍历当前用户拥有的...

    asp获取数据库中所有表名和字段名

    ### ASP 获取数据库中所有表名和字段名 在ASP(Active Server Pages)环境中,通过脚本语言(如VBScript或JScript)与ADO(ActiveX Data Objects)对象结合使用,可以实现对数据库的操作,包括查询数据库中的所有...

    delphi 读取指定数据库的表名

    在这个过程中,我们将涉及数据库连接、SQL查询以及数据绑定等技术。下面将详细介绍这个过程及其相关知识点。 首先,我们需要建立数据库连接。Delphi提供了多种数据库访问组件,如ADO(ActiveX Data Objects)、BDE...

    SQl查询数据库表名、表的列名

    根据给定的信息,本文将详细解释如何通过SQL查询获取数据库中的表名以及这些表的列名。这在数据库管理及开发工作中是常见的需求之一,掌握这些技能有助于更好地管理和操作数据库。 ### 一、获取数据库中的所有表名 ...

    SQL查询包含某个字段的所有表名

    这两个视图在Microsoft SQL Server中提供,它们存储了关于数据库对象(如表、列等)的信息。 1. `syscolumns` 视图: - `name`:该列包含表中的列名。 - `id`:此列标识列所在的表的序号,可用于链接到`...

    用友U8数据库表名参照表.docx

    用友U8数据库表名参照表 本篇文章将对用友U8数据库表名参照表进行详细的解释,涵盖表名、描述、标签和部分内容等方面。用友U8是中国领先的管理软件提供商,其数据库表名参照表是其核心组件之一。 1. Accessaries ...

    读取数据库名,表名,列名的小程序

    2. **获取数据库名**:要获取SQL Server 2005中的所有数据库名,可以执行`SELECT name FROM sys.databases` SQL查询。`sys.databases`是系统视图,其中包含了关于数据库的信息。`SqlCommand`的`ExecuteReader`方法将...

    用友U8数据库表名参照表

    用友U8数据库表名参照表是用友U8系统中的一组数据库表,它们都是用友U8系统的核心组件,是用友U8系统的数据存储和管理的基础。 以下是用友U8数据库表名参照表的详细说明: 1. Accessaries 成套件表:该表存储了...

    SQLSERVER数据库命名规范

    SQL Server 数据库命名规范 SQL Server 数据库命名规范旨在提高数据库的可读性和易维护性,统一各个开发人员的数据库编码风格。为了便于与 C# 代码进行对接,制定了本规范。 数据库命名 数据库命名规则旨在提供一...

    在C#中读取出所有数据库名,和相应的表名

    C# 中读取所有数据库名和相应的表名 在 C# 中,读取所有数据库名和相应的表名是非常有用的功能,特别是在数据库管理和开发中。下面是相关的知识点: 1. 使用 ADO.NET 连接数据库 在 C# 中,使用 ADO.NET 连接...

    Sql查询MySql数据库中的表名和描述表中字段(列)信息

    以下是一条SQL语句,用于获取指定数据库(替换'数据库名')中的所有表名及其描述: ```sql SELECT table_name AS name, TABLE_COMMENT AS value FROM INFORMATION_SCHEMA.TABLES WHERE table_type = 'base table' ...

    QT读取access是数据库表名中文乱码

    标题"QT读取access是数据库表名中文乱码"揭示了这个问题的核心:在使用QT连接并读取Access数据库时,表名显示为乱码。这可能是由于编码不兼容或者QT驱动程序对中文字符的支持不足导致的。 描述中的解决方案提到...

Global site tag (gtag.js) - Google Analytics