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

如何从SQL存储过程中提取完整的EXEC查询语句?

提取T-SQL存储过程中的完整EXEC语句

我需要从T-SQL存储过程中提取所有完整的EXEC查询语句,示例存储过程如下:

USE [test]

ALTER PROC [dbo].[USP_TEST]
@idx int 
AS

EXEC USP_TEST_BY_IDX @idx

print("TEST")

EXEC USP_TEST_CHECK

期望得到包含所有EXEC语句的数组,比如:

['EXEC USP_TEST_BY_IDX @idx', 'EXEC USP_TEST_CHECK']

目前我用以下JavaScript脚本只能提取到exec关键字,无法获取整行内容:

let str = document.getElementById("procedure").innerText;
str.match(/exec/gmi);

请问该如何修改正则表达式来提取完整的EXEC语句行?


你可以修改正则表达式,匹配以EXEC(不区分大小写)开头,直到行尾的所有内容,同时忽略行首的空白字符。修改后的代码如下:

let str = document.getElementById("procedure").innerText;
const execStatements = str.match(/^\s*exec\s+.+/gmi);
console.log(execStatements);

正则表达式说明:

  • ^:匹配行的开始位置
  • \s*:匹配行首任意数量的空白字符(包括空格、制表符)
  • exec:匹配EXEC关键字,i标志实现不区分大小写匹配
  • \s+:匹配EXEC后面至少一个空白字符
  • .+:匹配后续任意非换行字符,直到行尾
  • g:全局匹配所有符合条件的行
  • m:启用多行模式,让^和$能匹配每行的开头和结尾

执行后就能得到包含所有完整单行EXEC语句的数组,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:37:10