Wenn Sie sich auf SQL Agent-Jobs beziehen, ist diese Funktionalität in der Express Edition nicht verfügbar. Siehe die Antwort auf diese Frage für andere Möglichkeiten: stackoverflow.com/questions/3788583/…
8kb
Express Edition unterstützt SQL Server Broker und Sie können einen benutzerdefinierten Mechanismus wie hier
Sie können Folgendes tun:
Sie können Jobs "manuell" erstellen, indem Sie Batchdateien und SQL-Skriptdateien erstellen und über den Windows Task Scheduler ausführen.
Sie können Ihre Datenbank beispielsweise mit zwei Dateien wie folgt sichern:
backup.bat:
sqlcmd -i backup.sql
backup.sql:
backupdatabase TeamCity to disk = 'c:\backups\MyBackup.bak'
Legen Sie einfach beide Dateien in denselben Ordner und führen Sie die Batchdatei über den Windows Task Scheduler aus.
Die erste Datei ist nur eine Windows-Batchdatei, die das Dienstprogramm sqlcmd aufruft und eine SQL-Skriptdatei übergibt.
Die SQL-Skriptdatei enthält T-SQL. In meinem Beispiel ist es nur eine Zeile zum Sichern einer Datenbank, aber Sie können jedes T-SQL darin einfügen. Beispielsweise könnten Sie UPDATEstattdessen einige Abfragen durchführen.
Wenn die Jobs, die Sie erstellen möchten, für Sicherungen, Indexwartungen oder Integritätsprüfungen bestimmt sind, können Sie auch die hervorragende Wartungslösung von Ola Hallengren verwenden.
Es besteht aus einer Reihe gespeicherter Prozeduren (und SQL Agent-Jobs für Nicht-Express-Editionen von SQL Server). In den häufig gestellten Fragen finden Sie einen Abschnitt zum Ausführen der Jobs in SQL Server Express:
Wie fange ich mit der SQL Server-Wartungslösung unter SQL Server Express an?
SQL Server Express hat keinen SQL Server-Agenten. Daher muss die Ausführung der gespeicherten Prozeduren mithilfe von Cmd-Dateien und geplanten Windows-Aufgaben geplant werden. Folge diesen Schritten.
SQL Server Express hat keinen SQL Server-Agenten. Daher muss die Ausführung der gespeicherten Prozeduren mithilfe von Cmd-Dateien und geplanten Windows-Aufgaben geplant werden. Folge diesen Schritten.
Laden Sie MaintenanceSolution.sql herunter.
Führen Sie MaintenanceSolution.sql aus. Dieses Skript erstellt die gespeicherten Prozeduren, die Sie benötigen.
Erstellen Sie Cmd-Dateien, um die gespeicherten Prozeduren auszuführen. Beispiel:
sqlcmd -E -S. \ SQLEXPRESS -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'USER_DATABASES', @Directory = N'C: \ Backup ', @BackupType =' FULL '" -b -o C: \ Log \ DatabaseBackup.txt
Erstellen Sie unter Geplante Windows-Aufgaben Aufgaben zum Aufrufen der Cmd-Dateien.
Planen Sie die Aufgaben.
Starten Sie die Aufgaben und überprüfen Sie, ob sie erfolgreich abgeschlossen wurden.
@ HasanGürsoy Wenn Sie eine geplante Aufgabe erstellen, die SQLCMD ausführt (mit oder ohne BAT-Datei), würde ich empfehlen, für die Windows-Authentifizierung den Parameter "-E" von SQLCMD zu verwenden. Damit dies funktioniert, definieren Sie eine SQL Server-Anmeldung für den Windows-Benutzer, der Eigentümer Ihrer geplanten Windows-Aufgabe ist. Wenn nicht klar ist, unter welchen Windows-Anmeldungen die Aufgabe ausgeführt wird, geben Sie "WHOAMI" (DOS-Befehl) in die BAT-Datei ein und erfassen Sie die Ausgabe der BAT-Datei, um zu sehen, wer ausgeführt wird.
Doug_Ivison
@ HasanGürsoy Oder für die SQL Server-Authentifizierung würde ich das Kennwort in die geplante Windows-Aufgabe einfügen (wobei die Berechtigungen bestimmen, wer es lesen kann), anstatt es irgendwo in einer Datei abzulegen. Es wird in der Befehlszeile der BAT-Datei angezeigt. Wenn es der erste Parameter ist, der an die BAT-Datei übergeben wird, können Sie ihn in der BAT-Datei als% 1 bezeichnen, beispielsweise in der SQLCMD-Zeile.
Doug_Ivison
41
Die Funktionalität zum Erstellen von SQL Agent-Jobs ist in SQL Server Express Edition nicht verfügbar. Eine Alternative besteht darin, eine Batchdatei auszuführen, die ein SQL-Skript mit Windows Task Scheduler ausführt.
Erstellen Sie dazu zunächst eine Batch-Datei mit dem Namen sqljob.bat
Ersetzen Sie die servername, username, passwordund pathmit Ihnen.
Erstellen Sie dann die SQL- Skriptdatei mit dem Namen sqljob.sql
USE [databasename]
--T-SQL commands go hereGO
Ersetzen Sie das [databasename]durch Ihren Datenbanknamen. Das USEund GOist erforderlich, wenn Sie das SQL-Skript schreiben.
sqlcmdist ein Befehlszeilenprogramm zum Ausführen von SQL-Skripten. Führen Sie nach dem Erstellen dieser beiden Dateien die Batchdatei mit dem Windows Task Scheduler aus.
NB: Für diese Frage wurde bereits eine fast gleiche Antwort veröffentlicht. Ich fand es jedoch unvollständig, da es keine Angaben zu den Anmeldeinformationen mit machte sqlcmd.
Wo würde ich diese sqljob.sql speichern? und wie kann ich sagen, wann es ausgeführt wird?
WTFZane
1
@WTFZane, es spielt keine Rolle, solange der Speicherort von dem verfügbar ist, den die Batchdatei ausführt. (Ersetzen path of sqljob.sqlSie im obigen Skript durch den von Ihnen verwendeten Speicherort.) Denken Sie daran, dass eine *.sqlDatei hier nichts anderes als eine Textdatei ist.
Abel
16
SQL Server Express-Editionen sind in gewisser Weise eingeschränkt. Eine Möglichkeit besteht darin, dass sie nicht über den SQL-Agenten verfügen, mit dem Sie Jobs planen können.
Es gibt einige Erweiterungen von Drittanbietern, die diese Funktion bieten - siehe z.
Antworten:
SQL Server Express enthält keinen SQL Server-Agenten , daher können nicht nur SQL Agent-Jobs erstellt werden.
Sie können Folgendes tun:
Sie können Jobs "manuell" erstellen, indem Sie Batchdateien und SQL-Skriptdateien erstellen und über den Windows Task Scheduler ausführen.
Sie können Ihre Datenbank beispielsweise mit zwei Dateien wie folgt sichern:
backup.bat:
backup.sql:
backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
Legen Sie einfach beide Dateien in denselben Ordner und führen Sie die Batchdatei über den Windows Task Scheduler aus.
Die erste Datei ist nur eine Windows-Batchdatei, die das Dienstprogramm sqlcmd aufruft und eine SQL-Skriptdatei übergibt.
Die SQL-Skriptdatei enthält T-SQL. In meinem Beispiel ist es nur eine Zeile zum Sichern einer Datenbank, aber Sie können jedes T-SQL darin einfügen. Beispielsweise könnten Sie
UPDATE
stattdessen einige Abfragen durchführen.Wenn die Jobs, die Sie erstellen möchten, für Sicherungen, Indexwartungen oder Integritätsprüfungen bestimmt sind, können Sie auch die hervorragende Wartungslösung von Ola Hallengren verwenden.
Es besteht aus einer Reihe gespeicherter Prozeduren (und SQL Agent-Jobs für Nicht-Express-Editionen von SQL Server). In den häufig gestellten Fragen finden Sie einen Abschnitt zum Ausführen der Jobs in SQL Server Express:
quelle
Die Funktionalität zum Erstellen von SQL Agent-Jobs ist in SQL Server Express Edition nicht verfügbar. Eine Alternative besteht darin, eine Batchdatei auszuführen, die ein SQL-Skript mit Windows Task Scheduler ausführt.
Erstellen Sie dazu zunächst eine Batch-Datei mit dem Namen sqljob.bat
Ersetzen Sie die
servername
,username
,password
undpath
mit Ihnen.Erstellen Sie dann die SQL- Skriptdatei mit dem Namen sqljob.sql
USE [databasename] --T-SQL commands go here GO
Ersetzen Sie das
[databasename]
durch Ihren Datenbanknamen. DasUSE
undGO
ist erforderlich, wenn Sie das SQL-Skript schreiben.sqlcmd
ist ein Befehlszeilenprogramm zum Ausführen von SQL-Skripten. Führen Sie nach dem Erstellen dieser beiden Dateien die Batchdatei mit dem Windows Task Scheduler aus.NB: Für diese Frage wurde bereits eine fast gleiche Antwort veröffentlicht. Ich fand es jedoch unvollständig, da es keine Angaben zu den Anmeldeinformationen mit machte
sqlcmd
.quelle
path of sqljob.sql
Sie im obigen Skript durch den von Ihnen verwendeten Speicherort.) Denken Sie daran, dass eine*.sql
Datei hier nichts anderes als eine Textdatei ist.SQL Server Express-Editionen sind in gewisser Weise eingeschränkt. Eine Möglichkeit besteht darin, dass sie nicht über den SQL-Agenten verfügen, mit dem Sie Jobs planen können.
Es gibt einige Erweiterungen von Drittanbietern, die diese Funktion bieten - siehe z.
quelle