通过SQL Manage sutudio管理windows azure上的SQL Server
说到windows azure上的SQL创建,我们在上一篇文章上有介绍了,那今天主要介绍什么呢,我们发现在windows azure上创建的sql数据库下没有SQL Server代理选项功能。我相信大家都用过SQL Server代理相关的功能,具体功能就不用多说了。拿我来说,因为我们有个服务的数据是写入到SQL Server上的,我们在本地通过计划人物实现对数据保留60天,然后通过web方式查询,这样就比较方便了,比较效率高了,如果数据库下的数据越多,搜索的越慢,所以我坚持使用sql server的计划维护任务。另外,我将多个服务的log写入到了sql下,每天几乎能写几十万条,但是对其中的部分内容感兴趣,想把一些关键字的内容从数据库下删除,这样我也只能结束SQL 代理下的计划任务了。我当时想,那如果windows azure上没有图形界面,那应该有命令了吧!最后通过了解,windows azure上不支持sql agent job的功能,听完后,心一下凉了一大半截,那有什么好的办法么,通过跟windows azure上的人员了解,有另外的一种方法可以实现对windows azure上的SQL 做计划任务维护,不管怎么样,只要有办法就行啊,今天呢,我就这给大家分享一下,通过本地的manage studio来新建计划来远程维护windows azure上的SQL数据。
官网介绍,windows azure上的数据库不支持代理。
http://msdn.microsoft.com/library/azure/ee336245.aspx#sqlagent
我们今天操作,需要通过SQL语句来远程管理windows azure上的SQL数据,那是什么语句呢,格式又是什么呢?我们再次简单说一下哈。
我们借助的是:sqlcmd语句。
sqlcmd -U xxxxx -P xxxxxx -S xxxxx -d HolTestDB -Q "sql语句“
-U : SQL Database的用户名
-P : 密码
-d: 数据库名称
-Q: sql语句
举例:我试图通过sqlcmd去删除我的SQL Database中,HolTestDB数据库下,名为People表中,ID大于13的数据。那么这个命令为:
sqlcmd -U xxxxx -P xxxxxx -S xxxxx -d HolTestDB -Q "delete from People where ID > 13"
-S : 服务器DNS名称。您可以通过管理门户找到,如下图
其实大家主要记住以下格式就可以了:我们在后面将两个实列
sqlcmd -U 用户名 -P 密码 -S 服务器名称 -d 数据库名称 -Q "sql语句"
环境介绍:
SQL服务器:wrllkpz6kb.database.chinacloudapi.cn
数据库:Domino
表: logs
登录名:wenlong
密码:Password8
今天主要介绍两条主要的名:
删除数据库中指定字段下的指定数据;
需要注意的是SQL语句中%(百分号)的应用,要删除范围内的数据,都需要添加%百分号来应用,但是数据和%之间不能有空格,在语句中,空格也算一个空格,
1.delete from Domino where sevent like ‘SMTP Server:%‘
2.sqlcmd -U wenlong -P Password8 -S wrllkpz6kb.database.chinacloudapi.cn -d Domino -Q " delete from Domino where sevent like ‘SMTP Server:%‘"
删除数据库中除了60天以外的数据:
1.delete from [Domino].[dbo].logs where dateadd(month,6,log_date) < getdate();
2.sqlcmd -U wenlong -P Password8 -S wrllkpz6kb.database.chinacloudapi.cn -d Domino -Q " delete from [Domino].[dbo].logs where dateadd(month,6,log_date) < getdate();
"
1.我们需要在在本地打开SQL Manage studio,然后展开SQL Server代理,新建作业
作业名称根据自己的环境可编写。确认
2. 选择步骤:名称随意,类型--操作系统(如果通过本地的manage studio远程管理windows azure的SQL必需选择类型—操作系统。),然后在命令输入框,输入需要执行的命令。
为了方便测试,我将sql语句暂时更改为select * from logs,然后在控制台进行查看,命令是否生效。
操作前,我先通过manage studio执行看看我数据库下的表的数据
Select * from logs
为了判断我的命令是否生效,我先将代码复制,然后在命令行执行一下试试结果。
sqlcmd -U [email protected] -P Password8 -S wrllkpz6kb.database.chinacloudapi.cn -d Domino -Q "select * from logs"
如果出现以上界面的话,那说明,远程命令是执行成功的。我们在自己的环境可,可将需要执行的语句替换即可。
然后我们可以将该命令写入到了SQL语言中了。
保存后,我们右击新建的作业----作业开始步骤,开始测试
经过测试,作业可以正常运行。
既然是作业呢,我们需要设置一个定时计划,编辑作业,然后—计划,根据自己的时间可以进行设置。保存
如果需要创建多个程序,我们可以在步骤下新建多个步骤,或者在第一个sql语句中,以分号分开多条SQL语句也行。双引号下可以输入多条语句,以分号(;)分开即可。
sqlcmd -U wenlong -P Password8 -S wrllkpz6kb.database.chinacloudapi.cn -d Domino -Q "select * from logs;select * from other tablse "
通过本地的SQL Manage sutudio管理windows azure上的SQL Server