Как установить и настроить базу данных с помощью .NET? - PullRequest
4 голосов
/ 20 февраля 2010

В настоящее время я работаю над проектом, который включает использование SQLServer. Я хотел бы знать, какую стратегию я должен использовать при установке программного обеспечения для создания базы данных? Мне нужно настроить таблицы, хранимые процедуры и пользователей.

Нужно ли моему программному обеспечению проверять при запуске, чтобы увидеть, существует ли база данных, а если нет, создать ее? Можно ли как-нибудь автоматизировать это при установке SQLServer?

Спасибо.

EDIT Хорошо, сейчас у меня есть много хороших решений, но я действительно ищу решение (бесплатное или с открытым исходным кодом было бы замечательно), которое позволило бы мне развернуть новое приложение, для которого требуется, чтобы SQLServer был заново установлен и настроен в соответствии с потребностями программного обеспечения.

Ответы [ 6 ]

3 голосов
/ 20 февраля 2010

RedGate предлагает программное обеспечение SQL Packager , которое дает вам возможность создать сценарий / .exe для развертывания всей БД, включая все (хранимые процедуры, таблицы и т. Д.) Из одного .exe. Если вы можете себе это позволить и хотите иметь легкий способ сделать это (без необходимости делать это самостоятельно), это путь; -)

  • Простое развертывание обновлений базы данных на клиентской базе
  • Сценарий и сжатие вашей схемы и данных точно и быстро
  • Упакуйте любой существующий сценарий SQL как .exe или запустите как проект C #
  • Упрощение развертываний и обновлений для SQL Server 2000, 2005 и 2008
1 голос
/ 20 февраля 2010

Вы можете использовать инфраструктуру миграции, например Migrator.Net , тогда вы можете запускать миграцию при каждом запуске приложения. Преимущество этого подхода в том, что вы можете обновлять свою базу данных при выпуске новой версии программного обеспечения.

Зайдите на страницу Начало работы . Это может прояснить концепцию.

Я успешно использовал этот подход для решения проблемы, с которой вы столкнулись.

1 голос
/ 20 февраля 2010

Вы можете написать сценарий T-SQL, который создает объекты только тогда, когда они не существуют. Для базы данных:

if db_id('dbname') is null
    create database dbname

Для хранимой процедуры (список типов объектов см. MSDN ):

if object_id('spname', 'P') is null
    exec ('create procedure dbo.spname as select 1')
go
alter procedure dbo.spname
as
<procedure definition>

Хорошая особенность таких сценариев заключается в том, что их многократный запуск не создает проблем - все объекты уже существуют, поэтому сценарий ничего не будет делать во второй раз.

1 голос
/ 20 февраля 2010

Вы делаете все это с помощью сценариев SQL. И тогда ваша программа установки запускает их на клиентском SQL Server.

0 голосов
/ 21 февраля 2010

вы можете сделать скрипт из всех объектов, которые существуют в вашей БД. после этого вы можете запустить этот скрипт из своего кода.

когда вы создаете сценарий БД с помощью мастера сценариев на сервере sql, в разделе «выберите параметры сценария» установите для «Включить, если не существует» значение «Да». с этой работой, только если db не существует.

0 голосов
/ 20 февраля 2010

Настройка сервера довольно проста, если вы используете MS SQL Server. Что касается создания базы данных и таблиц, вы обычно делаете это только один раз. Весь смысл базы данных в том, что данные являются постоянными, поэтому, если есть вероятность, что база данных не будет существовать, у вас либо возникнут а) серьезные проблемы со стабильностью, либо б) нет необходимости в реальной базе данных.

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

...