SQL Server CE + внешний файл SQL

Я создаю базу данных SQL Server CE программно (не используя сущность или LINQ). В настоящее время я встраиваю операторы SQL в исходный код, но я хотел бы избежать этого, если это возможно.

Есть ли способ просто получить внешний файл.sql, который я мог бы прочитать и выполнить с использованием классов SQL Server CE?

Отредактировано для ясности**

Я работаю в предположении, что в некотором классе SQL Server CE есть метод, который просто позволяет мне выполнять файл.sql. Так что-то вроде: command.executeSqlFile (имя файла).

Причина этого в том, что я создаю тестовое приложение, в котором нужно будет создавать и заново создавать базу данных sql server ce во время использования приложения. Я действительно не хочу жестко программировать SQL - мне было бы намного проще иметь внешний файл.sql с:

...
CREATE TABLE TEST(col1 int, col2 int, col3 int);
INSERT INTO test (col1,col2,col3) VALUES (11, 22, 33);
...

Опять же, я мог легко прочитать это с помощью классов ввода-вывода, просто задаваясь вопросом, есть ли более чистый способ (используя только классы System.Data & System.Data.SqlServerCE) для этого.

Спасибо!

2 ответа

Как упомянул Руп в комментарии, вы должны быть в состоянии прочитать данные из созданного вами текстового файла. Вы можете сделать это несколькими способами, включая отдельные файлы для каждого оператора.sql или один большой файл.

Я бы предупредил, что это также может быть угрозой безопасности. Кто-то может легко изменить эти файлы и сделать вредоносные вещи с вашей БД. Будьте осторожны, что вы не храните учетные данные в виде простого текста в этих файлах. Вы можете рассмотреть возможность шифрования ваших внешних файлов данных.

Или вы можете просто создать отдельный файл CE, который содержит таблицу операторов SQL, которую можно легко поддерживать в приложении, или даже отдельный файл. Таким образом, вы открываете базу данных операторов, вызываете нужную "процедуру", извлекаете текст, закрываете его, открываете реальную БД и используете результат первого запроса для выполнения на реальной БД. Конечно, вы будете ограничены 4000 символами на поле, но это само по себе немного. Если вам нужно больше, объедините несколько вместе.

Другие вопросы по тегам