【问题标题】:(Azure Synapse) How to get the environment name in SQL Script?(Azure Synapse) 如何在 SQL 脚本中获取环境名称?
【发布时间】:2021-12-26 14:26:13
【问题描述】:

在 Synapse Analytics 中,我们有四种环境:

"****devsa"

“****qasa”

"****uatsa"

“****产品”

这是我创建外部数据源的脚本:

IF NOT EXISTS (SELECT * FROM sys.external_data_sources WHERE name = 'Datalake')
BEGIN
CREATE EXTERNAL DATA SOURCE [DataLake]
WITH (LOCATION = 'https://****devsa.blob.core.windows.net/');
END;

如何改变位置名称?

我的目标是能够在任何环境中运行此脚本。

【问题讨论】:

    标签: azure-synapse


    【解决方案1】:

    @@servername 函数在 Azure Synapse 中支持,但您可以使用 SERVERPROPERTY 获得类似的结果。一个简单的示例,在专用和无服务器 SQL 池上进行了测试:

    SELECT SERVERPROPERTY( 'ServerName' )
    

    您可以将结果分配给一个变量,使用Like 和通配符 (%) 检查其内容。一个简单的例子:

    DECLARE @serverName VARCHAR(100) = CAST( SERVERPROPERTY( 'ServerName' ) AS VARCHAR(100) )
    DECLARE @environment VARCHAR(10)
    
    SELECT @serverName sn
    
    IF @serverName Like '%dev'
        SET @environment = 'dev'
    ELSE IF @serverName Like '%qasa'
        SET @environment = 'QA'
    ELSE
        RAISERROR( 'Unable to determine environment for server %s.', 16, 1, @serverName )
    
    SELECT @serverName sn, @environment e;
    

    NB 在匹配字符串的末尾没有通配符 (%) 等同于“以”结尾。仔细检查您的服务器名称是否可以超过 100 并进行相应调整。

    【讨论】:

    • 谢谢,它有效。
    猜你喜欢
    • 2021-08-16
    • 2017-06-23
    • 2021-03-21
    • 1970-01-01
    • 2017-02-22
    • 2016-05-02
    • 1970-01-01
    • 2021-08-07
    • 2021-10-26
    相关资源
    最近更新 更多