用SSMS连接Azure Sql Database 与连接本地库的一些操作

背景

我们知道Azure Sql Database 可以降低运维成本、是一种Pass模式,有资源弹性设置,可以自由调整资源自动对应不同业务高峰(当然也可以降低费用成本),也方便项目后期的资源扩展,以及一些其他优点或特性,这就不一一列出。那么数据库开发工程师来说,操作Azure Sql Database 与我们使用的SSMS(Microsoft Sql Server Management Studio)在本地库上操作有哪些区别。

 

我们简单从如下几部分进行比较

1.创建对象比较;(简单列一下Azure 上创建数据库操作,SSMS创建数据库默认省略)

2.连接库比较;

3.操作比较;

 

1.创建对象比较

 美洲杯赌球 1

 

美洲杯赌球, 

 美洲杯赌球 2

 美洲杯赌球 3

美洲杯赌球 4

 

 美洲杯赌球 5

 

 美洲杯赌球 6

美洲杯赌球 7

2.链接库的比较

美洲杯赌球 8

 

美洲杯赌球 9

美洲杯赌球 10

通过上述图可以看到,在azure sql database 中涉及到实例一级的对象都是没有了。

在azure sql database大概总结如下:

1.没有 AlwaysON,没有数据库镜像,没有日志传送,没有复制。 有异地复制可以直接添加数据库辅助副本(库大小是指数据文件大小);

2.没有 agent ;如需执行定时调度可以参考《通过本地Agent监控Azure_sql_database》

3.没有SSIS;

4.不支持实例一级的对象(如不支持全局临时表、没有Profiler等);如需监控可以参考《如何在Azure sql database 下监控正在运行的脚本或某个存储过程是否已运行》

 

3.具体操作方面比较

 美洲杯赌球 11

 通过上图发现azure sql database系统数据库中没有tempdb,那能否使用临时表之类的对象?

首先查看当前的azure sql database 版本号

美洲杯赌球 12

 测试临时表(不是sql server 2016 temporal table)

 美洲杯赌球 13

美洲杯赌球 14

可以使用临时表,不支持使用全局的临时表。

美洲杯赌球 15

 Pass模式下,某些命令已不支持。

美洲杯赌球 16

 注意默认的getdate()是UTC时间,与北京时间相差8小时。

美洲杯赌球 17

 不能在本库显式调用其他库,如:use master

 

默认情况下,azure sql database 不支持跨库操作,需要创建扩展表,建同构同名的表,只能是只读且架构唯一。如要存储过程进行跨库操作,需使用sp_execute_remote调用。

 

ssms 2012界面下存储过程点右键如下图:

美洲杯赌球 18

SSMS 2016界面下存储过程点右键如下图:

美洲杯赌球 19

UI界面操作,建议安装最新版本SSMS.或者 exec sp_helptext 加具体的存储过程名称,执行,把执行结果拷出才是存储过程的脚本;

 

参考资料

如何创建扩展表

sp_execute_remote

总结

azure sql database 与ssms相比:

1.没有 AlwaysON,没有数据库镜像,没有日志传送,没有复制。 有异地复制可以直接添加数据库辅助副本(库大小是指数据文件大小);

2.没有 agent ;如需执行定时调度可以参考《通过本地Agent监控Azure sql database》

3.没有SSIS;

4.不支持实例一级的对象(例如不支持全局变量、没有Profiler等);如需监控可以参考《如何在Azure sql database 下监控正在运行的脚本或某个存储过程是否已运行》

5.有些命令不支持,因azure sql database 是Pass模式;

6.注意默认getdate()是取UTC时间,与北京时间相差8小时;

7.不能在本库显式调用其他库;

8.默认情况下,azure sql database 不支持跨库操作,需要创建扩展表,建同构同名的表,只能是只读且架构唯一;

9.azure sql database 是基于v12的引擎,要在UI界面上操作建议安装ssms 2016版操作。

10.用户名限制,不能使用adminadministratorsaguestroot

本文由美洲杯赌球发布于计算机教程,转载请注明出处:用SSMS连接Azure Sql Database 与连接本地库的一些操作

TAG标签: 美洲杯赌球
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。