我正在尝试审核网络,以查找和清理可能已经过测试和遗忘的旧数据库。
现在,我知道我可以SQLCMD -L
用来查看服务器和实例。如果 Management Studio 连接到服务器,我可以使用 exec sp_helpdb 获取服务器名称、数据库名称、大小、所有者、创建和状态。
这两者本身都很棒,但是它们需要连接到 MGMT Studio 中的每个服务器,然后针对注册的服务器组运行以下查询。
我希望创建以下查询的循环以遍历所有SQLCMD -L
找到的数据库,以便我可以发送审核结果进行清理,可能通过 SQLCMS/OSQL,以避免手动连接过程。我可能还必须为他们制定适当的登录帐户,所以如果在这个混乱中可以选择,那也很好(Sa、Win Auth、SQL Auth 等)
如果有人对将其作为自动化过程运行的解决方案有一些建议,将不胜感激。
create table #temp
(
name sysname
,db_size nvarchar(13)
,owner sysname
,dbid smallint
,created smalldatetime--nvarchar(11)
,status nvarchar(600)
,compatibility_level tinyint
)
go
insert into #temp
exec sp_helpdb
ALTER TABLE #temp
DROP COLUMN dbid
ALTER TABLE #temp
DROP COLUMN status
ALTER TABLE #temp
DROP COLUMN compatibility_level
select * from #temp
where name not like'master%'
AND name not like 'model%'
AND name not like 'msdb%'
AND name not like 'ems_master%'
AND name not like 'tempdb%'
AND name not like 'ReportServer%'
AND name not like 'HR'
AND name not like 'EMS_Personnel%'
order by created
drop table #temp