Saya tidak yakin ini mungkin sama sekali. Anda tentu membutuhkan pengetahuan mendalam tentang sintaks SQL dari DBMS target Anda. Misalnya di luar kepala saya, ini adalah satu pernyataan MySQL:
INSERT INTO things
SELECT * FROM otherthings ON DUPLICATE KEY
UPDATE thingness=thingness+1
Kemungkinan ada konstruksi di beberapa DBMS yang, tanpa pembatas, bisa menjadi ambigu.
Saya pikir Anda mungkin terpaksa. Ini benar-benar cara standar untuk membatasi pernyataan SQL. Bahkan jika Anda dapat menemukan heuristik untuk mendeteksi titik pernyataan SQL yang mungkin dimulai, Anda berisiko mengalami bencana seperti klausa "HAPUS DARI BARANG" yang tidak disengaja-tanpa-WHERE-clause.
Apakah pernyataan baris-baru-ganda-untuk-baru dapat diterima?
Tidak, bahkan dengan pembatas titik koma, regex tidak cukup kuat untuk mengurai SQL. Poin masalah akan mencakup:
';'
";"
`;`
'\';'
''';'
-- ;
#;
/*;*/
dan setiap interposisi dari struktur ini. Eek!