Задача:
дана строка со скриптом хранимой процедуры в T-SQL, нужно в ней найти AS и заменить на WITH ENCRYPTION AS
Т.е. скрипт создает процедуры, а нужно их создать зашифрованными.
Вот есть такая функция
public static void ProcessProcedure(ref String scr)
{
Regex reg = new Regex("create(\\s*)procedure[\\S\\s.]*\\sas");
Match m = reg.Match(scr);
if(m.Success)
{
scr = scr.Replace(" as","as");
scr = scr.Replace("\nas","\nwith encryption as");
}
}
Она все делает.
Но здесь одна проблема: она не учитывает комментарии, т.е. если перед реальным AS будет стоять
CREATE PROCEDURE ....
/*
не забыть AS
*/
AS
или
--не забыть AS
AS
То сработает замена в комментарии.
Как обарботать комментарий и заменить нужное?