2011-08-26 13 views
51

SQL Server Express Editionでジョブを作成する方法を教えてください。SQL Server Express Editionでジョブを作成する方法

+4

SQLエージェントジョブを参照している場合、その機能はExpressエディションでは使用できません。他の可能性については、この質問に対する回答を参照してください。http://stackoverflow.com/questions/3788583/automate-a-sql-query-to-run-every-month/3789024#3789024 – 8kb

+0

Express EditionはSQL Server Brokerをサポートしています。 [here](http://stackoverflow.com/a/41909818/5070879)のようなカスタムメカニズムを作成する可能性があります – lad2025

答えて

89

SQL Server Express doesn't include SQL Server Agent、SQL Agentジョブを作成することはできません。

可能な操作は次のとおりです。
バッチファイルとSQLスクリプトファイルを作成してWindowsタスクスケジューラを使用してジョブを手動で作成できます。
たとえば、次のような二つのファイルとバックアップデータベースをすることができます

BACKUP.BAT:

sqlcmd -i backup.sql 

backup.sql:

backup database TeamCity to disk = 'c:\backups\MyBackup.bak' 

ただ、両方のファイルを置きます同じフォルダーに入れ、Windowsタスクスケジューラーを介してバッチファイルを実行します。

最初のファイルは、sqlcmd utilityを呼び出し、SQLスクリプトファイルを渡すWindowsバッチファイルです。
SQLスクリプトファイルにはT-SQLが含まれています。私の例では、データベースをバックアップするのは1行だけですが、T-SQLを内部に置くこともできます。たとえば、代わりにUPDATEクエリを実行できます。

+1

ここで私はログイン情報を指定する必要がありますか? –

+0

@HasanGürsoySQLCMDを実行する(BATファイルを使用する、または使用しない)スケジュールされたタスクを作成する場合は、SQLCMDの「-E」パラメータをWindows認証に使用することをお勧めします。これが機能するには、Windowsスケジュールタスクの所有者であるWindowsユーザーのSQL Serverログインを定義します。どのウィンドウがログインしているか不明確な場合は、WHATを実行している人を確認するために、BATファイルに "WHOAMI"(DOSコマンド)を入れ、BATファイルの出力をキャプチャします。 –

+0

@HasanGürsoyまたは、SQL Server認証では、パスワードをどこのファイルにでも置くのではなく、Windowsのスケジュールされたタスク(アクセス許可を管理するユーザーを管理する)にパスワードを設定します。これはBATファイルのコマンドラインにあります。最初のパラメータがBATファイルに渡されている場合は、BATファイル内で、たとえばSQLCMD行の%1として参照できます。 –

13

SQL Server Expressエディションにはいくつかの制限があります.1つの方法は、ジョブをスケジュールできるSQLエージェントがないことです。

は、その機能を提供し、いくつかのサードパーティの拡張機能があります - チェックアウト例えば:SQLエージェントジョブを作成する機能は、SQLで使用できない

23

Server Express Editionをインストールします。また、Windowsタスクスケジューラを使用してSQLスクリプトを実行するバッチファイルを実行する方法もあります。これが最初の置き換え

sqlcmd -S servername -U username -P password -i path of sqljob.sql 

sqljob.bat という名前のバッチファイルを作成行うために

servernameusernamepasswordとあなたとのpath

は、その後、あなたのデータベース名と[databasename]を置き換え

USE [databasename] 
--T-SQL commands go here 
GO 

sqljob.sql という名前のSQLスクリプトファイルを作成します。 USEGOは、SQLスクリプトを記述するときに必要です。

sqlcmdは、SQLスクリプトを実行するためのコマンドラインユーティリティです。この2つのファイルを作成したら、Windowsタスクスケジューラを使用してバッチファイルを実行します。

NB:この質問にはほぼ同じ回答が掲載されています。しかし、sqlcmdを使用してログイン情報を指定していないため、不完全であると感じました。

+0

どこでsqljob.sqlを保存しますか?それが実行されるときに私はどのように置くことができますか? – WTFZane

関連する問題