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 символами на поле, но это само по себе немного. Если вам нужно больше, объедините несколько вместе.