declare @timeToRun nvarchar(50); declare @t1 int; set @t1=10; set @timeToRun = right(rtrim(CONVERT(VARCHAR(70), GETDATE(), 108)),2) if @timeToRun = @t1 begin -- waitfor time @timeToRun begin print 'Hello'; end end
Я нахожу код, который работает правильно, проблемы возникают с SQL SERVER EXPRESS EDITION, он не предоставляет SQL AGENT, такой же запрос успешно выполняется с SQL SERVER STANDARD EDITION.
Код SQL Server, который необходимо запускать повторно, лучше выполнять с помощью задания агента SQL Server. Вот документация для создания задания агента SQL Server .Вкратце, процедура для этого в SQL Server Management Studio:
В обозревателе объектов щелкните знак плюс, чтобы развернуть сервер, на котором вы хотите создать задание агента SQL Server.
Щелкните значок плюса, чтобы развернуть Агент SQL Server.
Щелкните правой кнопкой мыши папку «Задания» и выберите «Новое задание ...».
В диалоговом окне «Новое задание» на странице «Общие» измените общие свойства задания.
На странице «Шаги» организуйтешаги работы.
На странице расписаний организуйте расписания для работы.
На странице оповещений организуйте оповещения для работы.
На странице уведомлений задайте действия, которые агент Microsoft SQL Server должен выполнять после завершения задания.
На странице "Задачи" управляйтецелевые серверы для задания.
Когда закончите, нажмите OK.