You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移除Azure SQL Data Warehouse中SQL视图注释并生成无注释查询

在Azure SQL Data Warehouse中移除SQL视图的所有注释

针对你遇到的正则表达式函数无法生效的问题,以下是处理后完全移除注释的视图创建语句:

CREATE VIEW [dimension].[v_dim_customer] 
AS
    SELECT
        KNA1.fk_MANDT_KUNNR AS sk_customer, 
        KNA1.[NAME1_nom], 
        flag_ext_int.externe_interne_code, 
        flag_ext_int.externe_interne_level_2_code
    FROM 
        [e3p].[KNA1] KNA1
    LEFT OUTER JOIN 
        [e3p].T005T T005T ON KNA1.[fk_MANDT_LAND1] = T005T.[fk_MANDT_LAND1]
                          AND T005T.[bk_SPRAS_code_langue] = N'F'
     LEFT OUTER JOIN 
         [e3p].T016T ON KNA1.[fk_MANDT_BRSCH] = T016T.[fk_MANDT_BRSCH]
                     AND T016T.[bk_SPRAS_code_langue] = N'F'

由于Azure SQL Data Warehouse对正则函数的支持有限,直接用REGEXP_REPLACE这类函数可能无法正确处理所有注释场景(尤其是跨多行注释或字符串内的注释标记),你可以用以下字符串处理逻辑手动实现注释移除:

  • 处理--单行注释:
    将SQL文本按行拆分,逐行检查是否存在--。如果存在,先判断该标记是否在字符串常量内(通过统计该行中--位置前的单引号数量是否为奇数),若不在字符串内,则截取--之前的内容作为该行的有效代码。

  • 处理/* */多行注释:
    循环执行字符串替换,每次找到/*和*/的位置,同样先确认这对标记不在字符串常量内,然后移除两者之间的所有内容(包括标记本身),直到文本中不再包含/*为止。

内容的提问来源于stack exchange,提问作者zle_bi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:07:41