A. 我想知道在sql里如何查询到数据库的建立时间及每个表的建立时间
思路:
1、在MSSQL中有分别存储数据库和表的信息表
2、存储数据库信息的表为:sys.databases,它是对SQL Server 系统上的每个系统数据库和用户自定义的数据库含有一行记录,并且,它只出现在master数据库中。
3、表的信息为:sys.tables,它是当前数据库中的所有的表对象,包含所有表的信息。
实现代码:
--1、数据库信息
select*frommaster..sysdatabases
--2、表信息
use某某数据库
go
select*fromsys.tables
延伸阅读:
数据库中系统表及用途
sysaltfiles:主数据库 保存数据库的文件
syscharsets:主数据库字符集与排序顺序
sysconfigures:主数据库 配置选项
syscurconfigs:主数据库当前配置选项
sysdatabases:主数据库服务器中的数据库
syslanguages:主数据库语言
syslogins:主数据库 登陆帐号信息
sysoledbusers:主数据库 链接服务器登陆信息
sysprocesses:主数据库进程
sysremotelogins主数据库 远程登录帐号
syscolumns:每个数据库 列
sysconstrains:每个数据库 限制
sysfilegroups:每个数据库 文件组
sysfiles:每个数据库 文件
sysforeignkeys:每个数据库 外部关键字
sysindexs:每个数据库 索引
sysmenbers:每个数据库角色成员
sysobjects:每个数据库所有数据库对象
syscomments:数据库对象的详细资料
syspermissio ns:每个数据库 权限
systypes:每个数据库 用户定义数据类型
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