如何查找并列出一个LAN中所有的SQL服务器以及其上的数据库的名字?

Sean918 2003-11-25 03:05:25
rt
...全文
82 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-11-26
  • 打赏
  • 举报
回复

'*************************************************************************
'**函 数 名:s_ListSQLSrv_DB
'**功能描述:在立即窗口打印出所有的 SQL Server 组及各组的 SQL Server
'** 及各级的数据库
'**输 入:无
'**输 出:无
'**调用模块:引用: Microsoft SQLDMO Object Library
'**作 者:邹建
'**日 期:2003年11月26日
'*************************************************************************
Sub s_ListSQLSrv_DB()
Dim iSql As SQLDMO.Application
Dim iSqlS As SQLDMO.SQLServer

Dim iI&, iJ&, iL&

Set iSql = New SQLDMO.Application
Set iSqlS = New SQLDMO.SQLServer
iSqlS.LoginSecure = True '对于win98/me,取消此句

With iSql.ServerGroups
For iI = 1 To .Count
Debug.Print .Item(iI).Name
With .Item(iI).RegisteredServers
For iJ = 1 To .Count
Debug.Print vbTab & .Item(iJ).Name
iSqlS.Connect .Item(iJ).Name '对于win98/me,加上:,用户名,密码
With iSqlS.Databases
For iL = 1 To .Count
Debug.Print vbTab & vbTab & .Item(iL).Name
Next
End With
iSqlS.Disconnect
Next
End With
Next
End With

Set iSql = Nothing
End Sub

Sean918 2003-11-25
  • 打赏
  • 举报
回复
十分感谢!

希望有人能尽快给我例子
zjcxc 元老 2003-11-25
  • 打赏
  • 举报
回复
可以,不过现在没空.

如果明天不没人答你的话,我可以给你VB的例子.
Sean918 2003-11-25
  • 打赏
  • 举报
回复
能讲具体些吗? 谢谢!
zjcxc 元老 2003-11-25
  • 打赏
  • 举报
回复
VB中可以通过调用SQL-DMO来实现.
Sean918 2003-11-25
  • 打赏
  • 举报
回复
如何在 VB 中执行这些语句呢?

因为想在 VB 中实现这些功能
zjcxc 元老 2003-11-25
  • 打赏
  • 举报
回复
--用查询分析器连接远程服务器,执行下面的语句,可以列出服务器上所有用户数据库+表+存储过程+触发器:

declare @sql varchar(8000)
declare @dbname varchar(250)

declare #aa cursor for
select name from master..sysdatabases where name not in('master','tempdb','model','msdb')
open #aa
fetch next from #aa into @dbname
while @@fetch_status=0
begin
set @sql='select re=''数据库名='+@dbname+''''
+' union all select ''--表名:'''
+' union all select name from ['+@dbname+']..sysobjects where xtype=''U'''
+' union all select ''--存储过程:'''
+' union all select name from ['+@dbname+']..sysobjects where xtype=''P'''
+' union all select ''--触发器:'''
+' union all select name from ['+@dbname+']..sysobjects where xtype=''T'''
print @sql
exec(@sql)
fetch next from #aa into @dbname
end
close #aa
deallocate #aa

Sean918 2003-11-25
  • 打赏
  • 举报
回复
楼上写的什么意思?

看不懂

能不能解释一下?
pengdali 2003-11-25
  • 打赏
  • 举报
回复
EXEC MASTER..XP_CMDSHELL 'OSQL -L'
lynx1111 2003-11-25
  • 打赏
  • 举报
回复
命令行用 osql -L isql -L
数据库名字能得到吗?
lynx1111 2003-11-25
  • 打赏
  • 举报
回复
D:\>isql -L

Locally configured servers:
-- NONE --

Announced network servers:
BRUCE
DAVEN
DAVID
EDIT2
FRANK
HELEN
HENGLI
JET
JOBIN
LYNX
MARK
TOM
TONY
WUWEI

D:\>

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧