C#。Regex检查所有参数是否以“开始”;";在sql过程中
如何使用正则表达式检查过程中的所有参数是否都以“p_”开头 程序示例:C#。Regex检查所有参数是否以“开始”;";在sql过程中,c#,regex,C#,Regex,如何使用正则表达式检查过程中的所有参数是否都以“p_”开头 程序示例: DELIMITER $$ DROP PROCEDURE IF EXISTS `sp_in_sys_blablabla`$$ CREATE PROCEDURE `sp_in_sys_blablabla`( p_cod_componente INT(11), cod_tipo_ocorrencia SMALLINT(4), p_dat_inicio CHAR(30), dat_fim C
DELIMITER $$
DROP PROCEDURE IF EXISTS `sp_in_sys_blablabla`$$
CREATE PROCEDURE `sp_in_sys_blablabla`(
p_cod_componente INT(11),
cod_tipo_ocorrencia SMALLINT(4),
p_dat_inicio CHAR(30),
dat_fim CHAR(30),
p_cod_usu_inc CHAR(10),
p_datInc CHAR(40)
)
BEGIN
DECLARE v_excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET v_excecao = 1;
START TRANSACTION;
......
END$$
C#代码:
在我看来,你有两个选择:
p_u1;[a-z]+
StartsWith(“p_”)
检查过程的最佳方法是使用Microsoft.SqlServer.Transact-SQL.ScriptDom。
这个软件包提供了完整的支持,可以一步一步地验证过程中的语句。我认为这应该使用语法来完成。@Matthias Koch:听起来是个好主意
string content = "proceddure code";
Regex regex = new Regex(regras[i].Regex, RegexOptions.Multiline | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
if (regex.IsMatch(content)) Console.WriteLine(ERROR_MESSAGE);