gpt4 book ai didi

c# - 如何以编程方式测试 SQL Server 是否支持 'AT TIME ZONE' ?

转载 作者:行者123 更新时间:2023-12-03 12:51:19 25 4
gpt4 key购买 nike

我目前正在 SQL Server 中使用 SQL CLR 进行时区转换,因为它是不安全的程序集,所以我无法在 Azure 中运行它。我们支持本地部署和 Azure 是一项业务需求。我正在考虑使用 Azure 的 AT TIME ZONE 功能并在本地保留 SQL CLR。​​

我希望能够添加一个使用“AT TIME ZONE”(如果可用)的 sql 函数,否则会调用程序集(如果可能)。

我可以在运行 sql 之前使用语法运行测试查询来创建函数,如果出现错误则创建另一个函数...但这意味着如果加载到较旧的 sql 中,一个实例的备份可能包含错误不支持该语法的服务器版本(例如 2016 至 2014)。

测试数据库是否支持此语法的最佳实践方法是什么(最好在 SQL 语句本身内)?

最佳答案

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

如果版本 = 'SQL Azure',则 VersionNumber 必须 >= '12'

如果版本 != 'SQL Azure',则版本号必须 >= '13.0.800.000' (CTP 3.1)

有关 SERVER 属性的更多详细信息,请查看 MSDN:https://msdn.microsoft.com/en-in/library/ms174396.aspx

谢谢,博尔科·诺瓦科维奇 (MSFT)

关于c# - 如何以编程方式测试 SQL Server 是否支持 'AT TIME ZONE' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36489387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com