3 回答
TA贡献1951条经验 获得超3个赞
SQL Server Express 不包含SQL Server代理,因此无法仅创建SQL代理作业。
您可以做的是:
您可以通过创建批处理文件和SQL脚本文件并通过Windows任务计划程序运行它们来“手动”创建作业。
例如,您可以使用以下两个文件备份数据库:
BACKUP.BAT:
sqlcmd -i backup.sql
backup.sql:
backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
只需将两个文件放在同一个文件夹中,然后通过Windows任务计划程序执行批处理文件。
第一个文件只是一个Windows批处理文件,它调用sqlcmd实用程序并传递一个SQL脚本文件。
SQL脚本文件包含T-SQL。在我的示例中,备份数据库只是一行,但您可以将任何T-SQL放入其中。例如,您可以执行一些UPDATE
查询。
如果您要创建的作业用于备份,索引维护或完整性检查,您还可以使用Ola Hallengren提供的出色维护解决方案。
它由一堆存储过程(以及SQL Server非Express版本的SQL Agent作业)组成,在FAQ中有一节介绍如何在SQL Server Express上运行作业:
如何开始使用SQL Server Express上的SQL Server维护解决方案?
SQL Server Express没有SQL Server代理。因此,必须使用cmd文件和Windows计划任务来计划存储过程的执行。跟着这些步骤。
SQL Server Express没有SQL Server代理。因此,必须使用cmd文件和Windows计划任务来计划存储过程的执行。跟着这些步骤。
下载MaintenanceSolution.sql。
执行MaintenanceSolution.sql。此脚本创建所需的存储过程。
创建cmd文件以执行存储过程; 例如:
sqlcmd -E -S。\ SQLEXPRESS -d master -Q“EXECUTE dbo.DatabaseBackup @Databases ='USER_DATABASES',@ Deirectory = N'C:\ Backup',@ BackupType ='FULL'” - b -o C:\登录\ DatabaseBackup.txt在Windows计划任务中,创建调用cmd文件的任务。
安排任务。
启动任务并验证它们是否已成功完成。
TA贡献1911条经验 获得超7个赞
SQL Server Express Edition中不提供创建SQL代理作业的功能。另一种方法是执行使用Windows任务计划程序执行SQL脚本的批处理文件。
为此,首先要创建一个名为sqljob.bat的批处理文件
sqlcmd -S servername -U username -P password -i path of sqljob.sql
更换servername
,username
,password
和path
与你的。
然后创建名为sqljob.sql的SQL Script文件
USE [databasename]--T-SQL commands go hereGO
替换为[databasename]
您的数据库名称。在USE
与GO
当你写的SQL脚本是必要的。
sqlcmd
是一个执行SQL脚本的命令行实用程序。创建此两个文件后,使用Windows任务计划程序执行批处理文件。
注意:此问题之前已经发布了几乎相同的答案。但我觉得它不完整,因为它没有指定使用的登录信息sqlcmd
。
- 3 回答
- 0 关注
- 1004 浏览
添加回答
举报