Search Database Objects on specified instance

 @echo off
echo Object Name ?
set /p obj=

echo set nocount on                          > ./tmp.sql
echo if exists(SELECT 1 FROM tempdb.dbo.sysobjects                    >> ./tmp.sql
echo           WHERE name = '##db' AND type in (N'U'))          >> ./tmp.sql
echo    drop table ##db                                          >> ./tmp.sql

echo if exists(SELECT 1 FROM tempdb.dbo.sysobjects                    >> ./tmp.sql
echo           WHERE name = '##tmp' AND type in (N'U'))        >> ./tmp.sql
echo    drop table ##tmp                                         >> ./tmp.sql

echo create table  ##tmp                                >> ./tmp.sql
echo (                                    >> ./tmp.sql
echo    dbname sysname,                                          >> ./tmp.sql
echo    objname sysname                                          >> ./tmp.sql
echo )                                                   >> ./tmp.sql

echo declare @dbname sysname                     >> ./tmp.sql                                      
echo declare @sqlcmd sysname                     >> ./tmp.sql                                      
echo select name into ##db from master..sysdatabases                  >> ./tmp.sql
echo     where lower(name) not in ('aud','security') order by dbid >> ./tmp.sql
echo while exists(select 1 from ##db)                                 >> ./tmp.sql                                      
echo begin                                                            >> ./tmp.sql                                      
echo       select top 1 @dbname=name from ##db                        >> ./tmp.sql                                      
echo       set @sqlcmd=N'insert into ##tmp select ''' + @dbname       >> ./tmp.sql                        
echo             +''', name from '+ @dbname+ '..sysobjects'    >> ./tmp.sql                   
echo          +' where name like ''%%%obj%%%'''            >> ./tmp.sql                                        
echo      exec(@sqlcmd)                         >> ./tmp.sql                                          
echo       delete from ##db where name=@dbname                        >> ./tmp.sql                                      
echo end                                                              >> ./tmp.sql                                      
                       
echo select dbname DB_Name, objname Object_Name from ##tmp       >> ./tmp.sql


echo if exists(SELECT 1 FROM tempdb.dbo.sysobjects                    >> ./tmp.sql
echo           WHERE name = '##tmp' AND type in (N'U'))        >> ./tmp.sql
echo    drop table ##tmp                                         >> ./tmp.sql

echo if exists(SELECT 1 FROM tempdb.dbo.sysobjects                    >> ./tmp.sql
echo           WHERE name = '##db' AND type in (N'U'))          >> ./tmp.sql
echo    drop table ##db                                          >> ./tmp.sql
echo set nocount off                         >> ./tmp.sql

echo Server Name which you want to search objects on ?
set /p srvname=
echo DBA Account?
set /p user=

sqlcmd -S%srvname% -U%user% -y30 -Y30 -v SQLCMDEDITOR="uedit32.exe" -i"./tmp.sql"
del ./tmp.sql
pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值