bde*_*n20 2 c# sql-server azure azure-sql-database
我目前正在使用SQL CLR进行SQL Server中的时区转换,因为它是一个不安全的程序集,我无法在Azure中运行它.我们支持内部部署和Azure是业务需求.我正在考虑为Azure使用AT TIME ZONE功能并保留SQL CLR用于内部部署.
我希望能够添加一个使用'AT TIME ZONE'的sql函数(如果可用的话,否则会调用程序集).
我可以在运行sql之前使用语法运行测试查询来创建函数,如果出现错误则创建另一个...但这意味着如果加载到较旧的sql server版本中,一个实例的备份可能包含错误不支持语法(例如2016年至2014年).
测试的最佳实践方法是什么(最好是在SQL语句本身内),数据库是否支持这种语法?
小智 5
AT TIME ZONE是SQL Server 2016(从CTP 3.1开始)和最新版本的Azure SQL数据库(V12)中提供的新功能.它也可用于SQL2016的所有本地版本以及Azure SQL数据库的所有服务层.话虽如此,确定是否支持AT TIME ZONE的最佳方法是通过运行以下查询来检查服务器版本
SELECT SERVERPROPERTY ('Edition') as Edition
SERVERPROPERTY('ProductVersion')as VersionNumber
Run Code Online (Sandbox Code Playgroud)
如果版本='SQL Azure'而不是VersionNumber必须> ='12'
如果版本!='SQL Azure'而不是版本号必须> = '13 .0.800.000'(CTP 3.1)
有关SERVER属性的更多详细信息,请查看MSDN:https://msdn.microsoft.com/en-in/library/ms174396.aspx
谢谢,Borko Novakovic(MSFT)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |