2013-05-06 4 views
0

Является новым для SQL Server и пытается научиться выполнять задания SQL Server. Я выполнил этот простой пример из msdn в экземпляре SQL Server Express, который я установил.Работа SQL Server не выполняется

USE msdb ; 
GO 
EXEC dbo.sp_add_job 
    @job_name = N'Weekly Backup' ; 
GO 
EXEC sp_add_jobstep 
    @job_name = N'Weekly Backup', 
    @step_name = N'Set database to read only', 
    @subsystem = N'TSQL', 
    @command = N'ALTER DATABASE SALES SET READ_ONLY', 
    @retry_attempts = 5, 
    @retry_interval = 5 ; 
GO 
EXEC dbo.sp_add_schedule 
    @schedule_name = N'ROce', 
    @freq_type = 1, 
    @active_start_time = 212600 ; 
USE msdb ; 
GO 
EXEC sp_attach_schedule 
    @job_name = N'Weekly Backup', 
    @schedule_name = N'ROce'; 
GO 
EXEC dbo.sp_add_jobserver 
    @job_name = N'Weekly Backup'; 
GO 
-- Start the job 
USE msdb; 
GO 
EXEC dbo.sp_start_job N'Weekly Backup'; 
GO 

Я поставил @active_start_time = 212600 Когда я выполнил этот сценарий, то время система была 21hrs23minutes. Итак, работа должна была быть выполнена через 3 минуты. Я ждал до 21.30hrs, а затем проверил задания выполняются история, но не вижу его: Я использовал этот сценарий, чтобы увидеть jobs'-выполненную историю:

SELECT sj.name, 
sja.run_requested_date, 
CONVERT(VARCHAR(12), sja.stop_execution_date- sja.start_execution_date, 114) Duration 
FROM msdb.dbo.sysjobactivity sja 
INNER JOIN msdb.dbo.sysjobs sj 
ON sja.job_id = sj.job_id 
WHERE sja.run_requested_date IS NOT NULL 
ORDER BY sja.run_requested_date desc 

Я также попробовал другой сценарий, я получил от web:

select 
j.name as 'JobName', 
msdb.dbo.agent_datetime(run_date, run_time) as 'RunDateTime', 
((run_duration/10000*3600 + (run_duration/100)%100*60 + run_duration%100 + 31)/60) 
    as 'RunDurationMinutes' 
From msdb.dbo.sysjobs j 
INNER JOIN msdb.dbo.sysjobhistory h 
ON j.job_id = h.job_id 
where j.enabled = 1 --Only Enabled Jobs 
--and j.name = 'TestJob' --Uncomment to search for a single job 
order by JobName, RunDateTime desc 

Но ни одно из заданий не указано. Не работает ли это работа? Я попытался переименовать задание и перезапустить его, но нет ... не работает. У меня нет агента SQL Server, поскольку он не поставляется с Express Edition. Пожалуйста помоги.

+1

Как вы сказали, вы не имеете агента SQL Server, так почему вы ожидаете задания для запуска? – Pondlife

+1

Да, задания агента SQL Server очень полезны и имеют достойное поведение при ошибках и протоколирование, но вам нужен агент SQL Server. – criticalfix

ответ

2

@Pondlife и @criticalfix (в комментариях выше) являются правильными. Агент SQL является планировщиком для SQL Server. Запланированное задание не будет выполняться без агента SQL.

Один из вариантов рассмотрения заключается в использовании планировщика AT для Windows. Вот статья SO, в которой говорится о приятном вызове командной строки для резервного копирования: What is a simple command line program or script to backup SQL server databases?

+0

+1 Спасибо. Я не знал, я должен признать свое невежество/глупость, что работа не будет работать без агента SQL Server. – Jean

1

«Экспресс» - это бесплатное издание. «Вакансии» - это функция, которую вы получаете, когда покупаете несвободную версию.

Итак, если вы являетесь разработчиком и хотите скомпилировать задания, что вы можете сделать?

Вы можете получить «Developer Edition» за умеренную цену, но вы не можете DEPLOY на Developer Edition.

Но вы сможете создавать задания с помощью Developer Edition.

Вот пример:

LINK

+0

+1 Я не знал, что отметить как правильный ответ, так как оба были правы. Спасибо. Я не знал, я должен признать свое невежество/глупость, что работа не будет работать без агента SQL Server. – Jean

+0

Невежество в порядке, вот для чего нужны форумы. Глупость не задает вопрос ... поэтому никакой глупости не было, ИМХО. – granadaCoder

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