Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以编程方式测试SQL Server是否支持';在时区';?_C#_Sql Server_Azure_Azure Sql Database - Fatal编程技术网

C# 如何以编程方式测试SQL Server是否支持';在时区';?

C# 如何以编程方式测试SQL Server是否支持';在时区';?,c#,sql-server,azure,azure-sql-database,C#,Sql Server,Azure,Azure Sql Database,我目前正在SQL Server中使用SQL CLR进行时区转换,因为它是一个不安全的程序集,所以我无法在Azure中运行它。这是我们支持内部部署和Azure的业务需求。我正在考虑为Azure使用AT时区功能,并为内部部署保留SQL CLR 我希望能够添加一个使用“AT TIME ZONE”(如果可用)的sql函数,如果可能的话,它可以调用程序集 在运行sql创建函数之前,我可以使用语法运行一个测试查询,如果出现错误,可以创建另一个。。。但这意味着,如果将一个实例的备份加载到不支持语法的较旧sql

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

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

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


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

时区是SQL Server 2016(从CTP 3.1开始)和最新版本的Azure SQL数据库(V12)中提供的一项新功能。 它还可以在SQL2016的所有prem版本和Azure SQL数据库的所有服务层中使用。 话虽如此,确定是否支持AT时区的最佳方法是通过运行以下查询来检查服务器版本

SELECT SERVERPROPERTY ('Edition') as Edition
       SERVERPROPERTY('ProductVersion')as VersionNumber
如果版本='SQL Azure',则版本号必须>='12'

如果版本!='SQL Azure的版本号必须大于等于13.0.800.000(CTP 3.1)

有关服务器属性的更多详细信息,请查看MSDN:

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