ストアド プロシージャを毎晩自動的に実行したいと考えています。どうすればできますか。この目標を達成するための手順を教えてください。
前もって感謝します。
SQL Server エージェントを使用してジョブを作成できます。
ジョブ フォルダを右クリックしてメニューを開き、[新しいジョブ] を選択します。
新しいジョブを作成するとウィンドウが開き、作成するジョブの詳細を指定します。含む:
これを試して:
CREATE PROCEDURE MyTask
AS
BEGIN
SET NOCOUNT ON;
-- For executing the stored procedure at 11:00 P.M
declare @delayTime nvarchar(50)
set @delayTime = '23:00'
while 1 = 1
begin
waitfor time @delayTime
begin
--Name for the stored proceduce you want to call on regular bases
execute [DatabaseName].[dbo].[StoredProcedureName];
end
end
END
それで、
-- Sets stored procedure for automatic execution.
sp_procoption @ProcName = 'MyTask',
@OptionName = 'startup',
@OptionValue = 'on'
参照:
自動実行用のストアド プロシージャを設定またはクリアします。自動実行に設定されたストアド プロシージャは、SQL Server のインスタンスが開始されるたびに実行されます。
指定された時間または時間間隔に達するか、指定されたステートメントが少なくとも 1 つの行を変更または返すまで、バッチ、ストアド プロシージャ、またはトランザクションの実行をブロックします。
手っ取り早い解決策は、
ストアド プロシージャを作成する SQL ジョブを作成する (以下に手順を示します)
http://www.dailycoding.com/Posts/step_by_step_guide_to_add_a_sql_job_in_sql_server_2005.aspx
手順 5 で、作成したストアド プロシージャを構成します。