读数据库所有表和表结构的sql语句
SQL获取所有数据库名、表名、储存过程以及参数列表
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' |
读数据库所有表和表结构的sql语句的更多相关文章
- 从数据库中查询所有表及所有字段的SQL语句
从数据库中查询所有表及所有字段的SQL语句 由于一个小项目的需要,近日完成一个从数据库中查询所有表及所有字段的方法,其实用两条SQL语句就可以完成. Sql Server版:列出当前DB中所有表:se ...
- sqlserver查询所有表的行数的sql语句
原文:sqlserver查询所有表的行数的sql语句 select object_name(id),rowcnt from sysindexes where indid<2 and object ...
- MySQL数据库(一)—— 数据库介绍、MySQL安装、基础SQL语句
数据库介绍.MySQL安装.基础SQL语句 一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 ...
- 【mybatis】mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wait timeout exceeded; try restarting transaction
今天使用mybatis和jpa的过程中,发现这样一个问题: mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wai ...
- sql中的系统表sysobjects以及如何查看sql语句的执行时间
使用sysobjects可以快速查看数据库中表.视图.存储过程.触发器.约束等的信息. 大牛文章:http://www.cnblogs.com/atree/p/SQL-Server-sysobject ...
- 如何将sqlserver表中的数据导出sql语句或生成insert into语句 [转]
输入表名,生成插入语句 drop proc proc_insert //如果存在就删除 go create proc proc_insert (@tablename varchar(256)) as ...
- mysql的TABLE_SCHEMA的sql和information_schema表, MySQL管理一些基础SQL语句, Changes in MySQL 5.7.2
3.查看库表的最后mysql修改时间, 如果第一次新建的表可能还没有update_time,所以这里用了ifnull,当update_time为null时用create_time替代 select T ...
- mysql 修改表名的方法:sql语句
在使用mysql时,经常遇到表名不符合规范或标准,但是表里已经有大量的数据了,如何保留数据,只更改表名呢? 可以通过建一个相同的表结构的表,把原来的数据导入到新表中,但是这样视乎很麻烦. 能否简单使用 ...
- Oracle的创建表和创建约束的Sql语句
Oracle的创建表和创建约束的Sql语法 1.创建表的语句 ---1.创建模拟的数据表 --- --1.1.创建学生表Student create table Student( StuId NUMB ...
随机推荐
- 使用Transaction访问数据库(C#,TransactionScope,.NET 2.0)
针对SQL2005和.NET 2.0的事物机制有了新的突破传统数据库事物访问机制,代码如下: 或者这种,其实都差不多 ...
- 有关Repeater的事件
Repeater放在Updatepanel中是可以通过右键->属性,双击事件来生成事件的,若能这样的话,那最后是用这种方法吧,最起码不会出错!
- webview与JavaScript之间的交互
据说WebView的强大之处就是能和JavaScript进行交互调用. 参考博客:http://droidyue.com/blog/2014/09/20/interaction-between-jav ...
- SQL 语句整理
1. /* SQL CASE 语句写法 * SELECT TABLE1.USER_ID, TABLE1.COMP_CODE, TABLE1.DEPT_CODE, TABLE1.USER_ ...
- C#XML操作详解
添加引用 using System.Xml; 创建XML文件 XmlDocument xmldoc=new XmlDocument(); //加入XML的声明段落:<?xmlversion=& ...
- Unity3D使用mesh创建一个正方形
using UnityEngine; using System.Collections; public class Quad : MonoBehaviour { // Use this for ini ...
- Java提高学习之Object(5)
字符串形式的表现 Q1:toString() 方法实现了什么功能?A1:toString() 方法将根据调用它的对象返回其对象的字符串形式,通常用于debug. Q2:当 toString() 方法没 ...
- MySQL数据库mysqlcheck的使用方法
MySQL数据库mysqlcheck的使用方法的相关知识是本文我们主要要介绍的内容,我们知道,mysqlcheck,是mysql自带的可以检查和修复MyISAM表,并且它还可以优化和分析表,mysql ...
- mysql sql学习(一)mysql连接
mysql -h 192.168.3.103 -uroot -p123456 //连接数据库 \s :查看数据库状态 show databases; 查看是数据库 create database if ...
- jsp 配置MySQL服务器 以及数据的插入和读取
不多说,直接上代码.百度上面也是一大堆,大家多问百度就行. 在利用JDBC访问数据库过程中,主要涉及三种资源:对数据库的连接的连接对象Connection,SQL语句对象 Statement,访问结果 ...