gpt4 book ai didi

sql-server - 确定 SQL Server 上的@@Servicename,并捕获 Azure 抛出的错误

转载 作者:行者123 更新时间:2023-12-02 08:04:58 24 4
gpt4 key购买 nike

我想请求 SQL Server 的服务名称。通常我用

来做到这一点
SELECT @@SERVICENAME

但这在 Azure 托管数据库上不起作用。我正在寻找一种方法来确定服务名称,如果我连接到 azure 数据库,则使用 try catch 回退。通常的 try catch 不适用于我 - 由于该语句的编译错误。我怎样才能捕获这个编译错误?

enter image description here

最佳答案

此语句在两种环境下均有效,不会出现编译错误:

DECLARE @T TABLE(ServiceName NVARCHAR(255)); 
DECLARE @Rows INT

IF SERVERPROPERTY('Edition') != 'SQL Azure'
BEGIN TRY
INSERT @T(ServiceName) EXEC ('SELECT @@SERVICENAME')
END TRY
BEGIN CATCH
END CATCH

SELECT @Rows = COUNT(*) FROM @T

IF @Rows = 0
INSERT @T(ServiceName) Values ('SQL Azure')

SELECT * FROM @T

在本地服务器上:

enter image description here

在 Azure 上:

enter image description here

关于sql-server - 确定 SQL Server 上的@@Servicename,并捕获 Azure 抛出的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46115695/

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