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('订货主档') andsyscolumns.xusertype=systypes.xusertype)

order by syscolumns.colorder;

go

执行结果:(字段只出现一次,正常)

订单号码    int4

客户编号    nvarchar    10

员工编号    int4

订单日期    datetime    8

要货日期    datetime    8

送货日期    datetime    8

送货方式    int4

运费    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;

执行结果:(部分字段出现两次,数据类型不同)

订单号码    int4

客户编号    nvarchar   10

客户编号    sysname    10

员工编号    int4

订单日期    datetime   8

订单日期    出生日期类型    8

要货日期    datetime   8

要货日期    出生日期类型    8

送货日期    datetime   8

送货日期    出生日期类型    8

送货方式    int4

运费    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

执行结果:

北风贸易

dboDepartmentSalaryInfo;1   @RETURN_VALUE0   4   0   NULL   0   3  NULL   NULL   10    NULL   NULL   intint

北风贸易

dboDepartmentSalaryInfo;1   @department   1   1   0   NULL   1   12910 10  NULL    NULL   NULL   varchar    varchar

北风贸易

dboDepartmentSalaryInfo;1   @average   2   2   0   NULL   1   6   NULL  NULL   19    NULL   NULL   money  money

北风贸易

dboDepartmentSalaryInfo;1   @maximum   3   2   0   NULL   1   6   NULL  NULL   19    NULL   NULL   money  money

北风贸易

dboDepartmentSalaryInfo;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';查询数据库存储量大小 (Master)
DECLARE @tablespaceinfo TABLE (   nameinfo varchar(50),   rowsinfo int,   reserved varchar(20),   datainfo varchar(20),   index_size varchar(20),   unused varchar(20)
)   DECLARE @tablename varchar(255);   DECLARE Info_cursor CURSOR FOR  SELECT [name] FROM sys.tables WHERE type='U';   OPEN Info_cursor
FETCH NEXT FROM Info_cursor INTO @tablename   WHILE @@FETCH_STATUS = 0
BEGIN  insert into @tablespaceinfo exec sp_spaceused @tablename   FETCH NEXT FROM Info_cursor   INTO @tablename
END  CLOSE Info_cursor
DEALLOCATE Info_cursor   SELECT * FROM @tablespaceinfo   ORDER BY Cast(Replace(reserved,'KB','') as INT) DESC 

原文链接: http://www.cnblogs.com/singlex/archive/2011/12/03/2274440.html

SQl查询数据库表名、表的列名、数据类型相关推荐

  1. sql查询数据库中所有表名

    sql查询数据库中所有表名 查询数据库里所有表名和字段名的语句 SQLSERVER 查询所有表名: SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' SELECT ...

  2. sql查询数据库注释(表及表注释,字段及字段注释)

    1. 要查询数据库下所有表名以及表注释 /* 查询数据库 'mammothcode' 所有表注释 */ SELECT TABLE_NAME,TABLE_COMMENT FROM information ...

  3. sql查询数据库表名

    查询数据库里所有表名和字段名的语句 SQL 查询所有表名: SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' SELECT * FROM INFORMATION_S ...

  4. Mysql与Sql Server查询数据库中表以及表字段

    1.查询数据库表信息 mysql查询数据库中所有表信息 SELECTtable_name AS '表名',table_comment AS '说明',create_time AS '创建时间',upd ...

  5. 查询数据库里所有表名和字段名的语句

    查询数据库里所有表名和字段名的语句 SQL 查询所有表名: SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' SELECT * FROM INFORMATION_S ...

  6. 查询数据库里所有表名,字段名的语句

    查询数据库里所有表名,字段名的语句 SQL查看所有表名: 1.select    name    from    sysobjects    where    type='U' 2.select * ...

  7. MySQL - 查询数据库里所有表名和字段名

    查询数据库里所有表名和字段名的语句 SQL 查询所有表名 SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' SELECT * FROM INFORMATION_SC ...

  8. sql查询数据库表中重复数值

    sql查询数据库表中重复数值 -- 查询表中id重复的值 select id from 表名 group by id having count(*) > 1--查询表中的重复记录,重复记录是根据 ...

  9. 查询数据库中所有表名

    查询数据库中所有表名 select table_name from information_schema.tables where table_schema='csdb' and table_type ...

  10. 查询数据库有哪些表,有多少张表 sql语句

    1. 查询数据库有哪些表 SHOW DATABASES; 2. 查询数据库中有多少张表 SELECTcount(*) TABLES,table_schema FROMinformation_schem ...

最新文章

  1. SET NOCOUNT ON 作用
  2. C#之windows桌面软件第一课:倒时器软件
  3. 判斷字符串中是否含有中文字符
  4. ABAP SUBMIT 程序时带屏幕默认值
  5. (转)用JQuery实现Fix表头表格
  6. 银行交易系统 TiDB 在线缩容迁移
  7. Xamarin.Forms 5.0 来了
  8. .NET Core中的验证组件FluentValidation的实战分享
  9. [转载] Google Java代码规范
  10. 用python画长方形_Python+opencv:绘制矩形,编写文本,PythonOpenCV,画,矩形框
  11. SQL Server中使用的公共数据类型
  12. 路由器太远手机接收不到信号怎么办
  13. 为什么客户画像这么难?
  14. 重庆邮电大学801信号与系统考研最核心知识点
  15. cad卸载不干净_Adobe系列软件总是卸载不干净?试试这个Adobe卸载工具
  16. python openpyxl冻结首行单元格
  17. html调色板快捷键,在线网页调色板
  18. 金蝶KIS专业版“登录时出现问题,请重新输入”终极解决全过程
  19. XILINX-FPGA下载工具--CH347FPGADownloader
  20. 华为云上传docker镜像

热门文章

  1. C++ sort 函数
  2. 软件工程课程第一次作业
  3. struts1中页面表单提交给action后页面一片空白,无错无异常
  4. 解密微软失落十年:官僚主义盛行 错过社交网络
  5. [Flask]SSTI
  6. JS - sort()函数
  7. 朱老师核心课程之串口实验烧录
  8. Scala进入paste模式方法
  9. 网络编程之UDP通信
  10. GetDlgItem function