Я не знаком с Dapper, но если вы используете SQLite 3.16.0 или новее, я думаю, у вас есть по крайней мере 1 вариант.Возможно 2. Начиная с версии 3.16.0, в SQLite появилась новая экспериментальная функция, которая называется PRAGMA functions .
Это означает, что теперь вы можете использовать встроенные функции PRAGMA
без побочных эффектов.в виде таблиц.Например, в дополнение к старому синтаксису:
PRAGMA integrity_check;
Теперь вы также можете проверить целостность базы данных следующим образом:
SELECT integrity_check FROM pragma_integrity_check();
Или:
SELECT * FROM pragma_integrity_check();
Такесли вы можете запускать произвольные SELECT
s в произвольных таблицах через Dapper и получать доступ к их результатам, то это все.
Но если вы не можете, и единственная информация, которую вы получаете на самом деле, это просто количество строквлияет, есть еще решение.Вы можете создать запрос, который удаляет 1 строку, если integrity_check
в порядке и 0 строк, если это не так:
DROP TABLE IF EXISTS Dummy;
CREATE TABLE Dummy as SELECT 'ok' as Value;
DELETE FROM Dummy WHERE Value = (SELECT * FROM pragma_integrity_check());
Это работает для меня в SQLite версии 3.25.3, но, как я уже сказалэто всего лишь экспериментальная функция, которая все еще может быть изменена, точный синтаксис может отличаться или не различаться в разных версиях.