Ответ 1
Да, большинство баз данных позволяют это. Обычно вам нужно каким-то образом ограничивать ваши SQL-операторы. В PostGRES и MySQL это точка с запятой (;). На сервере Microsoft SQL вы должны использовать ключевое слово GO. [Обновление за май 2013 г.: Начиная с SQL Server 2012 вы можете и должны использовать точки с запятой, чтобы разграничить ваши утверждения. После SQL Server 2012 (т.е. Следующая версия и далее) они будут обязательными. Использование GO теперь является устаревшим способом делать что-то в SQL2012 и за его пределами). ]
Пример MySQL/PostGRES:
DELETE FROM DUMMYTABLE_A where X=${value};
DELETE FROM DUMMYTABLE_B where X=${value};
DELETE FROM DUMMYTABLE_C where X=${value};
Пример MS-SQL:
DELETE FROM DUMMYTABLE_A where X=${value}
GO
DELETE FROM DUMMYTABLE_B where X=${value}
GO
DELETE FROM DUMMYTABLE_C where X=${value}
Лучшие базы данных (т.е. не MySQL) также будут поддерживать транзакции с BEGIN TRAN/COMMIT TRAN/ROLLBACK TRAN. Используя транзакции, вы можете фактически выставить все операторы в одну атомную операцию, где, если ее часть не удалась, все три будут отброшены назад. Подробнее см. http://www.sqlteam.com/article/introduction-to-transactions.
Скорее всего, все, что вам нужно, это точки с запятой между вашими операторами SQL!