sql 查询所有数据库-表-表结构

 1 --查询数据库中的所有数据库名:
 2 SELECT * FROM Master..SysDatabases ORDER BY Name
 3 --查询某个数据库中所有的表名:
 4 select * from sysobjects where type=‘U‘
 5 --查询表结构
 6 SELECT (case when a.colorder=1 then d.name else null end) 表名,
 7 a.colorder 字段序号,a.name 字段名,
 8 (case when COLUMNPROPERTY( a.id,a.name,‘IsIdentity‘)=1 then ‘√‘else ‘‘ end) 标识,
 9 (case when (SELECT count(*) FROM sysobjects
10 WHERE (name in (SELECT name FROM sysindexes
11 WHERE (id = a.id) AND (indid in
12 (SELECT indid FROM sysindexkeys
13 WHERE (id = a.id) AND (colid in
14 (SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name)))))))
15 AND (xtype = ‘PK‘))>0 then ‘√‘ else ‘‘ end) 主键,b.name 类型,a.length 占用字节数,
16 COLUMNPROPERTY(a.id,a.name,‘PRECISION‘) as 长度,
17 isnull(COLUMNPROPERTY(a.id,a.name,‘Scale‘),0) as 小数位数,(case when a.isnullable=1 then ‘√‘else ‘‘ end) 允许空,
18 isnull(e.text,‘‘) 默认值,isnull(g.[value], ‘ ‘) AS [说明]
19 FROM  syscolumns a
20 left join systypes b on a.xtype=b.xusertype
21 inner join sysobjects d on a.id=d.id and d.xtype=‘U‘ and d.name<>‘dtproperties‘
22 left join syscomments e on a.cdefault=e.id
23 left join sys.extended_properties g on a.id=g.major_id AND a.colid=g.minor_id
24 left join sys.extended_properties f on d.id=f.class and f.minor_id=0
25 where
26 -- b.name is not null
27  d.name=‘File_Folder_Name‘ --如果只查询指定表,加上此条件
28 order by a.id,a.colorder
时间: 2025-01-04 19:55:31

sql 查询所有数据库-表-表结构的相关文章

sql 查询所有数据库、表名、表字段总结

转自:http://www.cnblogs.com/aflyfly/archive/2011/08/10/2133546.html  錒飛 ms sql server1.查询所有表select [id], [name] from [sysobjects] where [type] = 'u' order by [name]2.查询所有数据库3.select [name] from [sysdatabases] order by [name]查询表中字段 select [name] from [s

SQL中查看数据库各表的大小

SQL中查看数据库各表的大小 编写人:CC阿爸 2014-6-17 在日常SQL数据库的操作中,如何快速的查询数据库中各表中数据的大小. 以下有两种方法供参考: 第一种: create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20)) exec sp_MSforeachtable "insert i

使用SQL语句清空数据库所有表的数据

近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用SQL语句一次清空所有数据.找到了三种方法进行清空.使用的数据库为MS SQL SERVER.1.搜索出所有表名,构造为一条SQL语句 declare @trun_name varchar(8000)set @trun_name='' select @trun_name=@trun_name + 'truncate table ' + [name] + ' ' from syso

sql 同步远程数据库(表)到本地

一)在同一个数据库服务器上面进行数据表间的数据导入导出: 1. 如果表tb1和tb2的结构是完全一样的,则使用以下的命令就可以将表tb1中的数据导入到表tb2中: insert into db2.tb2 select * from  db1.tb1 2. 如果表tb1和tb2只有部分字段是相同的,要实现将tb1中的部分字段导入到tb2中相对应的相同字段中,则使用以下命令: insert into db2.tb2(字段1,字段2,字段3--) select  字段1',字段2',字段3',-- 

sql 查询目标数据库中所有的表以其关键信息

1.查询目标库中的所有表 SELECT obj.name tablename, ---表名 schem.name schemname, ---表所属的方案 idx.rows, ---一共有几行数组 CAST ( CASE WHEN (SELECT COUNT(1) FROM sys.indexes WHERE object_id= obj.OBJECT_ID AND is_primary_key=1) >=1 THEN 1 ELSE 0 END AS BIT ) HasPrimaryKey --

java 查询oracle数据库所有表DatabaseMetaData的用法

DatabaseMetaData的用法(转) 一 . 得到这个对象的实例 Connection con ; con = DriverManager.getConnection(url,userName,password); DatabaseMetaData dbmd = con.getMetaData(); 二. 方法getTables的用法原型: ResultSet DatabaseMetaData.getTables(String catalog,String schema,String t

SQL Server 删除数据库所有表和所有存储过程

场景: SQL Server中,需要删除所有表或所有存储过程时,手动的方式只能逐个进行删除,耗个人时间,所以想弄个语句来实现这样的需求. 如果由于外键约束删除table失败,则先删除所有约束: --/第1步**********删除所有表的外键约束*************************/ 1 DECLARE c1 cursor for 2 select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+na

SQL创建/修改数据库、表

--创建表 create table 表(a1 varchar(10),a2 char(2)) --为表添加描述信息 EXECUTE sp_addextendedproperty N'MS_Description', '人员信息表', N'user', N'dbo', N'table', N'表', NULL, NULL --为字段a1添加描述信息 EXECUTE sp_addextendedproperty N'MS_Description', '姓名', N'user', N'dbo', N

SQL Server判断数据库、表、存储过程、函数是否存在

--判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名') drop database [数据库名] --判断表是否存在 if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [表名] --判断存储过程是否存在 if exist