利用本地SQL Server维护计划来维护SQL Database

On-Premise的SQL Server提供了维护计划来定期、定时的维护SQL Server。一般的做法是:定义SQL Server Agent Jobs,而后维护计划帮助我们定期、定时执行SQL Server Agent Jobs。遗憾的是,SQL Database并不提供维护计划以及SQL Server Agent功能。

然而,根据MSDN的说法,我们依然可以通过SQL Server提供的维护计划连接到SQL Database。(Microsoft Azure SQL Database does not support SQL Server Agent or jobs. You can, however, run SQL Server Agent on your on-premise SQL Server and connect to Microsoft Azure SQL Database. http://msdn.microsoft.com/library/azure/ee336245.aspx#sqlagent  )。具体做法如下:

通过SQL Server Agent可以调用sqlcmd命令,然后我们可以指定执行sqlcmd命令的服务器。这样,我们就可以配置一个SQL Server Agent Job去调用sqlcmd来维护SQL Database。

配置SQL Server Agent Job的方式如下 (SSMS 2012):

1. 新建一个SQL Server Agent Job:

clip_image002

2. 配置Job Steps:

clip_image003

3. 新建一个Job Step,Step类型选择Operating system (CmdExec):

clip_image004

4. 配置sqlcmd。在这个例子中,我试图通过sqlcmd去删除我的SQL Database中,HolTestDB数据库下,名为People表中,ID大于13的数据。那么这个命令为:

sqlcmd -U xxxxx -P xxxxxx -S xxxxx -d HolTestDB -Q "delete  from People where ID > 13"

请注意,上述例子中参数的意义如下:

-U : SQL Database的用户名

-P : 密码

-d: 数据库名称

-Q: sql语句

-S : 服务器DNS名称。您可以通过管理门户找到,如下图:

clip_image005

5. 测试sqlcmd是否有效 (注:这个步骤并不是必须的)。测试的目的,是为了验证我们配置的命令是否真的有效。然而,我并不想在测试的过程就把数据删掉,所以我将sqlcmd命令改成(delete换成select):

sqlcmd -U xxxxx -P xxxxxx -S xxxxx -d HolTestDB -Q "select * from People"

在命令行窗口,输入上面命令并得到下面的结果,说明该命令可以work:

clip_image007

6. 为Agent Job设置sqlcmd命令并保存:

clip_image008

7. 运行Agent Job:选中刚才创建的Job,点右键,选择Start Job at Step…

clip_image009

8. 运行成功:

clip_image011

9. 第5步的方式验证以下结果,发现ID大于13的成功被删除:

clip_image012

此外,我们也可以将您的SQL脚本放到.sql文件中,那么sqlcmd相应调整如下(之前的例子,通过-Q参数指定sql语句;下面的例子,通过-i参数执行sql脚本文件):

sqlcmd -U xxxx –P xxxx -S xxxxx -d HolTestDB -i "D:\MaintainSqlAzure.sql"

更多关于sqlcmd的用户,请参考:

sqlcmd 实用工具

How to: Connect to Azure SQL Database Using sqlcmd

转载于:https://www.cnblogs.com/jonathanlin/p/3875717.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值