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