Jag är inte säker på att detta är möjligt alls. Du skulle säkert behöva en djupgående kunskap om SQL-syntaxen för ditt mål-DBMS. Till exempel precis utanför mitt huvud är detta en enda MySQL-sats:
INSERT INTO things
SELECT * FROM otherthings ON DUPLICATE KEY
UPDATE thingness=thingness+1
Det är troligt att det finns konstruktioner i vissa DBMS som, utan en avgränsare, kan vara tvetydiga.
Jag tror att du kan bli tvungen. Det är helt och hållet standardsättet att avgränsa SQL-satser. Även om du kan hitta en heuristik för att upptäcka sannolikt-start-av-SQL-satspunkter, riskerar du katastrofer som en oavsiktlig "DELETE FROM things"-utan-WHERE-klausul.
Skulle dubbel-nyrad-för-ny-påstående vara acceptabelt?
Nej, även med semikolonavgränsare, regex är inte i närheten av tillräckligt kraftfullt för att analysera SQL. Problempunkter skulle vara:
';'
";"
`;`
'\';'
''';'
-- ;
#;
/*;*/
och eventuell interposition av dessa strukturer. Eek!