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  ---表是否有主键
from ZC_UAC.sys.objects obj
INNER JOIN
ZC_UAC.dbo.sysindexes idx ON obj.object_id=idx.id and idx.indid<=1
INNER JOIN
ZC_UAC.sys.schemas schem ON obj.schema_id=schem.schema_id
where type in(‘U‘)
order by obj.name

2、查询目标库中所有的表和视图

SELECT
obj.name tablename, ---表名
schem.name schemname,  ---表所属的方案
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  ---表是否有主键
from ZC_UAC.sys.objects obj
INNER JOIN
ZC_UAC.sys.schemas schem ON obj.schema_id=schem.schema_id
where type in(‘U‘,‘V‘)
order by obj.name

时间: 2024-10-26 21:18:11

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

SqlServer查询出数据库中所有的表及其字段属性

代码如下所示: /********************************* SqlServer查询出数据库中所有的表及其字段属性 *********************************/ SELECT ( CASE WHEN a.colorder = 1 THEN d.name ELSE '' END ) AS 表名 ,--如果表名相同就返回空 a.colorder AS 字段序号 , a.name AS 字段名 , ( CASE WHEN COLUMNPROPERTY(a

查询mysql数据库中所有的表和对应表中所有的字段

查询smp_db数据库中所有的数据表INFORMATION_SCHEMA.TABLES select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='smp_db' 查询smp_db数据库中smp_import_db表所有的字段information_schema.`COLUMNS` select COLUMN_NAME from information_schema.`COLUMNS` where TABLE_SCHE

sql server 怎样用SQL语句查询一个数据库中的所有表?

搜了一大堆做个总结,以下是Sql Server中的方法,备忘下 1,利用sysobjects系统表 在这个表中,在数据库中创建的每个对象(例如约束.默认值.日志.规则以及存储过程)都有对应一行,我们在该表中筛选出xtype等于U的所有记录,就为数据库中的表了. 示例语句如下:: select * from sysobjects where xtype='U' 注意:在SQL SERVER2005中,出现了sys.objects目录视图来代替sysobjects系统表,我们在SQL SERVER2

SQL语句查询一个数据库中的所有表

--读取库中的所有表名 select name from sysobjects where xtype='u' --读取指定表的所有列名 select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名') 获取数据库表名和字段 sqlserver中各个系统表的作用 sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库 字符集与排序顺序

利用SQL语句查询一个数据库中的所有表

SQL  :  select * from information_schema.tables ORACLE: select table_name from user_tables ACCESS: select    name    from    MSysObjects    where    type=1    and    flags=0

mysql、oracle、sqlserver查询某数据库中对应的表的个数

1.oracle查询数据库中表的个数: select count(*) from user_tables 这个操作的前提是,登录成功 2.mysql查询数据库中表的个数: SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = '数据库' GROUP BY table_schema;把数据库这三个字修改成自己对应的数据库的名字3.sqlserver中查询某一个数据中表的个数:

查询oracle数据库中的所有表空间信息

select dbf.tablespace_name,dbf.totalspace "总量(M)",dbf.totalblocks as 总块数,dfs.freespace "剩余总量(M)",dfs.freeblocks "剩余块数",(dfs.freespace / dbf.totalspace) * 100 "空闲比例" from (select t.tablespace_name,sum(t.bytes) / 1024

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 CO

SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称

1.查询数据库中的所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name 2.查询某个数据库中所有的表名: SELECT Name FROM SysObjects Where XType='U' ORDER BY Name 3.查询表结构信息: 1 SELECT (case when a.colorder=1 then d.name else null end) 表名, 2 a.colorder 字段序号,a.name 字段名, 3