Tôi không chắc điều này có thể xảy ra. Bạn chắc chắn cần có kiến thức chuyên sâu về cú pháp SQL của DBMS mục tiêu của mình. Ví dụ ngay trên đầu tôi, đây là một câu lệnh MySQL duy nhất:
INSERT INTO things
SELECT * FROM otherthings ON DUPLICATE KEY
UPDATE thingness=thingness+1
Có thể có những cấu trúc trong một số DBMS mà không có dấu phân cách, có thể không rõ ràng.
Tôi nghĩ rằng bạn có thể bị buộc phải. Đó hoàn toàn là cách tiêu chuẩn để phân tách các câu lệnh SQL. Ngay cả khi bạn có thể tìm thấy phương pháp heuristic để phát hiện các điểm có thể là điểm bắt đầu của câu lệnh SQL, bạn có nguy cơ gặp phải những thảm họa như vô tình “XÓA khỏi mọi thứ” -without-WHERE-mệnh đề.
Double-newline-for-new-statement có được chấp nhận không?
Không, thậm chí với dấu chấm phẩy phân cách, regex không đủ mạnh để phân tích cú pháp SQL. Các điểm vấn đề sẽ bao gồm:
';'
";"
`;`
'\';'
''';'
-- ;
#;
/*;*/
và bất kỳ sự xen kẽ nào của các cấu trúc này. Eek!