2010-07-28 2 views
1

Я хочу, чтобы эта процедура выполнялась каждый день с 2:00 утра. Кроме того, я хочу передать параметр даты в процедуру. Предположим, что сегодня 28 июля 2010 года, затем я хочу пройти 27 июля, 2:00 до процедуры. Таким образом, я хочу, чтобы все записи, вставленные после 27-го июля, 2:00 утра, должны были быть скопированы в другую таблицу. Это моя процедура.выполнить скрипт автоматически в 2 часа ночи?

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

Alter PROCEDURE spBackupRows 
(
    @Date datetime 
) 
AS 
BEGIN 

    Declare @ItemId int, @ItemName varchar(100), @Description varchar(50), @ItemCreatedDateTime datetime 

    Declare myCursor Cursor FOR 
     Select * from tblItems Where ItemCreatedDateTime > @Date 

    Open myCursor 

    Fetch Next From myCursor INTO @ItemId,@ItemName,@Description,@ItemCreatedDateTime 

    while @@FETCH_STATUS = 0 
    Begin 

     INSERT INTO tblBackUpData 
     (ItemId,ItemName,Description,ItemCreatedDateTime) 
     Values (@ItemId,@ItemName,@Description,@ItemCreatedDateTime) 

     Fetch Next From myCursor INTO @ItemId,@ItemName,@Description,@ItemCreatedDateTime 

    End 

    Close myCursor 
    Deallocate myCursor 

END 
GO 

Проблема, с которой я сталкиваюсь, заключается в том, как я могу автоматически устранить эту процедуру? а также передать параметр datetime в процедуру?

Заранее спасибо :)

+0

# 1, нет «2:00 утра полуночи» на мои часы. # 2, это относится к superuse.com – KevinDTimm

+0

Почему вы хотите перейти в datetime, когда вы можете использовать функции DateAdd и GetTime/GetUTCTime в своем SP? – spender

+1

Заменили мои часы. – TCM

ответ

7

How to: Schedule a Job (SQL Server Management Studio)

  1. В обозревателе объектов подключитесь к экземпляру SQL Server Database Engine, а затем разверните этот экземпляр.
  2. Разверните агент SQL Server, разверните Рабочие места, щелкните правой кнопкой мыши задание, которое вы хотите запланировать, и нажмите «Свойства».
  3. Выберите страницу «Расписания» и нажмите «Создать».
  4. В поле «Имя» введите имя для нового расписания.
  5. Снимите флажок Включено, если вы не хотите, чтобы график вступил в силу сразу же после его создания.
  6. Для Типа расписания выберите одно из следующих действий:

    • Нажмите Пуск автоматически, когда агент SQL Server начинает начать работу при запуске службы агента SQL Server.
    • Нажмите «Пуск», когда CPU перестает работать, когда CPU достигает состояния ожидания.
    • Нажмите Повторить, если вы хотите, чтобы расписание выполнялось повторно. Чтобы установить повторяющееся расписание, заполните диалоговом окне «Частота», «Ежедневная частота» и «Длительность».
    • Нажмите Один раз, если вы хотите, чтобы расписание запускалось только один раз. Чтобы установить однократное расписание, заполните диалоговое окно «Единовременная запись».
1

Вы можете использовать агент SQL Server, чтобы запланировать задание каждую полночь, то вы можете использовать маркер (ДАТА)

http://msdn.microsoft.com/en-us/library/ms175575.aspx

EXEC spBackupRows DATEADD(hour, -22, $(ESCAPE_NONE(DATE))) 

Предполагая, что вы планировать работу @ midnight

1

Для этого вы должны создать расписание и Job, how to

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