クライアントテーブルから履歴テーブルにデータをコピーする手順があります。
ユーザーが毎月特定の日にボタンを押すことなく、自動的にそれを行うにはどうすればよいですか?
SQL Server 2008 Express Editionを使用しているため、SQLServerエージェントを使用してジョブをスケジュールできません。
クライアントテーブルから履歴テーブルにデータをコピーする手順があります。
ユーザーが毎月特定の日にボタンを押すことなく、自動的にそれを行うにはどうすればよいですか?
SQL Server 2008 Express Editionを使用しているため、SQLServerエージェントを使用してジョブをスケジュールできません。
SQL Expressでは、これは不可能です。これを実行するプログラムを作成する必要があります。その後、Windowsタスクスケジューラを使用してプログラムを実行できます。SQL Serverの上位バージョンには、SQL ServerAgentが含まれています。SQLServerAgentを使用すると、さまざまな処理を実行できます。
SQL Expressを使用しているため、SQLServerエージェントを使用することはできません。ただし、多くの選択肢があり、オペレーティングシステムに応じて、schtasksまたはWindowsタスクスケジューラを使用してすべてをスケジュールできます。
これらすべての言語/ツール(および他の多くの言語)には、SQL Serverに接続し、ストアドプロシージャを実行する機能があります。次のエージェントの置き換えを試すこともできます。
VBScriptを使用した例を次に示します。
メモ帳を開きます。次のコードを入力し、$tokens$を実際の値に置き換えます。
s = "$your server/instance name$"
db = "$your database name$"
u = "$your SQL auth user ID$"
p = "$your SQL auth password$"
constr = "provider=SQLOLEDB;Data Source=" & s & ";Initial Catalog=" & s & _
";User ID=" & u & ";Password=" & p & ";Network=DBMSSOCN;"
Set conn = CreateObject("ADODB.Connection")
conn.Open constr
conn.Execute "EXEC dbo.$your procedure name$;"
conn.close: set conn = nothing
このファイルを名前を付けて保存c:\somewhere\ScheduledProcedure.vbs
コマンドプロンプトを開き、次のように入力します(これにより、このスクリプトは毎月15日の深夜に実行されるようにスケジュールされます)。すべて1行で実行します。
schtasks /create /tn "some name"
/tr "wscript ""c:\somewhere\ScheduledProcedure.vbs"""
/sc monthly /d 15 /st 00:00
スケジュールされたタスクのリストにこのタスクを表示するには(たくさんありますが、最初のグループに含める必要があります):
schtasks /query
後で削除する場合:
schtasks /delete /tn "some name" /F