2011-02-03 6 views
1

Я пытаюсь использовать следующую хранимую процедуру для получения баз данных с сервера. Тем не менее, я просто хочу, чтобы базы данных создавались месяц назад. Что мне нужно сделать, чтобы сделать эту работу?Использование скрытой хранимой процедуры

Вот код:

sp_msforeachdb 'IF ''?'' like ''z%'' 
BEGIN 
    print ''?'' 
END' 

Я просто хочу, базы данных, которые начинаются с Z, которые были созданы в течение определенного месяца.

ответ

5

Как об этом вместо этого.

select name 
    from sys.databases 
    where name like 'z%' 
     and create_date >= dateadd(mm,-1,getdate()) 
+0

проблема в том, что я пытаюсь выполнить итерацию нескольких баз данных и пытаюсь не использовать курсор или цикл. Я пробовал свой код раньше в курсоре, и потребовалось некоторое время, чтобы собрать нужные мне данные. – Jeff

+0

@Jeff: Не уверен, что я следую. 'sp_msforeachdb' * - * курсор под капотом. Вы можете увидеть это сами, запустив: 'sp_helptext 'sp_msforeachdb'' –

+1

@Jeff: Joe Stefanelli дает вам возможность решить вашу проблему без курсоров или циклов. Он выбирает из системного каталога, который представляет собой представление, которое вы можете запросить. Если вопрос не изменится, я бы сказал, что это ответ. Разве это не дает то, что вы хотите? –

Смежные вопросы