Я пытаюсь разобрать своего рода большой сценарий SQL, содержащий такие команды, как функции создания и сохранения процедур. Я хочу разделить файл на строки всякий раз, когда нахожу оператор GO (я хочу выполнить его, используя обычный ado.net вместо SMO).
Проблема в том, что я до сих пор не нашел подходящего регулярного выражения для этого. Использование простого \bGO\b
игнорирующего регистра разделит его. Но также разделит все ходы внутри комментария как
- этот ход также будет разделен
Использование этого выражения ^\bGO\b[^--]$
почти решает мою проблему, но я получаю некоторую ошибку, когда у меня есть два последовательных GO (которые по какой-либо причине находятся там и находятся за моим доменом).
end
go
GO
Вот так выглядит конец создания SP в моем скрипте.
Я делаю это в C #
Большое спасибо
** РЕДАКТИРОВАТЬ **
Сотрудник придумал решение, которое пока работает для всех моих сценариев
^\s*go\s*\r\n