当前位置:首页 » 数据仓库 » mssql查询所有数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

mssql查询所有数据库

发布时间: 2023-03-11 07:42:10

A. 我想知道在sql里如何查询到数据库的建立时间及每个表的建立时间

思路:

1、在MSSQL中有分别存储数据库和表的信息表

2、存储数据库信息的表为:sys.databases,它是对SQL Server 系统上的每个系统数据库和用户自定义的数据库含有一行记录,并且,它只出现在master数据库中。

3、表的信息为:sys.tables,它是当前数据库中的所有的表对象,包含所有表的信息。

实现代码:

--1、数据库信息
select*frommaster..sysdatabases
--2、表信息
use某某数据库
go
select*fromsys.tables

延伸阅读:

数据库中系统表及用途

  1. sysaltfiles:主数据库 保存数据库的文件

  2. syscharsets:主数据库字符集与排序顺序

  3. sysconfigures:主数据库 配置选项

  4. syscurconfigs:主数据库当前配置选项

  5. sysdatabases:主数据库服务器中的数据库

  6. syslanguages:主数据库语言

  7. syslogins:主数据库 登陆帐号信息

  8. sysoledbusers:主数据库 链接服务器登陆信息

  9. sysprocesses:主数据库进程

  10. sysremotelogins主数据库 远程登录帐号

  11. syscolumns:每个数据库 列

  12. sysconstrains:每个数据库 限制

  13. sysfilegroups:每个数据库 文件组

  14. sysfiles:每个数据库 文件

  15. sysforeignkeys:每个数据库 外部关键字

  16. sysindexs:每个数据库 索引

  17. sysmenbers:每个数据库角色成员

  18. sysobjects:每个数据库所有数据库对象

  19. syscomments:数据库对象的详细资料

  20. syspermissio ns:每个数据库 权限

  21. systypes:每个数据库 用户定义数据类型

  22. sysusers:每个数据库 用户

B. mssql 跨数据库查询

Select TA.* From A.dbo.procts TA
join B.dbo.price TB
On TA.P_Pid = TB.Pid
Order By TB.Pri

C. 在服务器上如何查看MSSQL数据库中的内容,用什么工具

用人家机器上的sql企业管理器,找到dbo.admin然后右键 打开表 返回所有行 密码一般都是md5加密的,如果加密或者为长txt类型的没法看 建议你把密码弄空 例如sql语句update admin set password=null或者右键修改为你想要的如果为md5加密的,直接复制,去网上找结果

D. 如何查看mssql数据库的连接数以及指定用户的连接信息小结

1、最简单的方法是:在查询分析器中之执行语句: exec sp_who
利用这个系统存储过程可以看到当前服务器上数据库的连接情况。
sp_who 这个系统存储过程,经过查资料将常用的发一下,可以看看:
<1>列出全部当前进程 不带参数直接执行exec sp_who 列出的是全部,可以大体了解情况,执行结果演示:
spid ecid status loginame hostname blk dbname cmd
---- ---- ------ ------------ -------- --- ------ -----
1 0 background sa 0 pubs LAZY WRITER
注意:blk 的状态参数的意思是这个 0(成功)或 1(失败)
<2>列出特定用户的进程,更具有针对性:exec sp_who 'west263'
假定当前数据库用户为west263 ,可以更清楚看出这个数据库连接信息。
2、用企业管理器界面也可以查信息
SQL2000:进入企业管理器,管理——当前活动——进程信息
SQL2005:进入manager studio ,展开对象管理器,管理——右键“活动监视器”——查看进程
SQL2008:进放manager studio 在菜单栏下面有一行图标,点击最后一个图标“活动监视器”,进入活动监视器的界面后,点击“进程”.
3,用netstat -an 命令,这个主要是查看1433的连接状态。
注:部分用户考虑安全修改了这个端口,不一定是1433 。可以到mssql的网络工具tcp/ip协议那个地方进行端口查看

E. mssql查询所有数据库的所有表中的某一行怎么写

说一下大概语句,具体你自己该,假设10个数据库的名称是db1,db2,...,db10,这里可以根据你数据库名称改,下面的语句也要改。
创建一个表存放数据库名,表名
create table tb1
(
id [int] IDENTITY (1, 1),
dbname varchar(100),
tbname varchar(100)
)

--- 把数据库db1的所有表名插入tb1表
insert tb1 (dbname,tbname)
select 'db1',name from db1.dbo,sysobjects where xtype='u'

insert tb1 (dbname,tbname)
select 'db2',name from db2.dbo,sysobjects where xtype='u'

insert tb1 (dbname,tbname)
select 'db3',name from db3.dbo,sysobjects where xtype='u'

insert tb1 (dbname,tbname)
select 'db4',name from db4.dbo,sysobjects where xtype='u'

insert tb1 (dbname,tbname)
select 'db5',name from db5.dbo,sysobjects where xtype='u'

insert tb1 (dbname,tbname)
select 'db6',name from db6.dbo,sysobjects where xtype='u'

insert tb1 (dbname,tbname)
select 'db7',name from db7.dbo,sysobjects where xtype='u'

insert tb1 (dbname,tbname)
select 'db8',name from db8.dbo,sysobjects where xtype='u'

insert tb1 (dbname,tbname)
select 'db9',name from db9.dbo,sysobjects where xtype='u'

insert tb1 (dbname,tbname)
select 'db10',name from db10.dbo,sysobjects where xtype='u'

这样tb1表里面就有数据库名,列名。创建一个存储过程,循环搜索:
create PROCEDURE TESTPERCUDURE
AS
DECLARE @col INTEGER
DECLARE @colmax INTEGER
DECLARE @tablename varchar(100)
DECLARE @SQL AS VARCHAR(200)
BEGIN
SET @col=1
set @colmax = (select max(id) from tb1)
SET @tablename= ''
WHILE @col<=@colmax
begin
SET @tablename= (select dbname+'.dbo.'+tbname from tb1 where id = @col)
SET @SQL='select * FROM '+@tablename+' where xname = 'aaa' --通过循环获取你的表名和数据库名,之后组装成SQL语句,然后执行.
EXECUTE sp_executesql @SQL
SET @col=@col+1
END
end