我要检测master库中是否存在以下的存储过程。
xpcmdshell sp_oacreate xp_dirtree 等等。。 我把 xp_dirtree删掉了。
要求输出格式是:
xpcmdshell : 1
sp_oacreate : 1
xp_dirtree : 0....
1 的话表示存在, 0表示 不存在。
但是我用下面的代码:
select name+' : '+ltrim(count(*)) from master..sysobjects where [name] in ('xp_cmdshell','sp_oacreate','xp_dirtree') group by name就只能看到
xpcmdshell : 1
sp_oacreate : 1xp_dirtree看不到啊。。
应该怎么写?
xpcmdshell sp_oacreate xp_dirtree 等等。。 我把 xp_dirtree删掉了。
要求输出格式是:
xpcmdshell : 1
sp_oacreate : 1
xp_dirtree : 0....
1 的话表示存在, 0表示 不存在。
但是我用下面的代码:
select name+' : '+ltrim(count(*)) from master..sysobjects where [name] in ('xp_cmdshell','sp_oacreate','xp_dirtree') group by name就只能看到
xpcmdshell : 1
sp_oacreate : 1xp_dirtree看不到啊。。
应该怎么写?
select a.name+' : '+ltrim(count(*)) from
(select name='xp_cmdshell'
union all
select name='sp_oacreate'
union all
select name='xp_dirtree')a
left join master..sysobjects b on a.name=b.name
group by a.name
----------------
因为你的master..sysobjects表中不存在name为xp_dirtree的数据。所以就查不出来了。
create table pname(name varchar(50))
insert into pname select 'xp_cmdshell'
insert into pname select 'sp_oacreate'
insert into pname select 'xp_dirtree'
go
--查询时:select a.name+' : '+ltrim(count(*)) from pname a
left join master..sysobjects b on a.name=b.name
group by a.name