2012-07-14 5 views
2

У меня есть следующие настройки:Выполнить SQL скрипт на MDF файл в App_Data

  • развития: Мой собственный компьютер с помощью файла MDF с ConnectionString, который относится к моей App_Data папке.
  • Производство: онлайн-сервер с собственной базой данных SQL

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

Теперь я в противоположной ситуации: я создал сценарии с моего производственного сервера и хочу запустить их по отношению к моему локальному файлу MDF.

Как это сделать? Все ответы, которые я видел до сих пор, мне не помогают.

Я попытался следующие:

Я попытался запустить весь SQL скрипт в «Run запроса» в Visual Studio, но я получаю «Множество SQL конструкт или оператор не поддерживается «. ошибка.

Я думаю, что мне нужно как-то открыть файл MDF в Microsoft SQL Management Studio, но я не могу найти способ заставить все это работать.

EDIT:

Через пол года, я использовал метод предложил в ответ снова и снова. Это, безусловно, лучшее решение. В проекте больше файлов MDF!

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

+0

Этот подход «прикреплять' .mdf' файл с диска »на самом деле не очень хорошая идея. Почему вы просто не используете экземпляр SQL Server на своей машине разработки - как и при производстве? Создайте базу данных ** на экземпляре сервера **, используйте имя логической базы данных вместо того, чтобы возиться с файлами '.mdf' в файловой системе - и это делает намного проще ** запускать скрипты против него, назад его и т. д. –

+0

Я думаю, это, наверное, лучшее решение. Я обязательно посмотрю на это. Возможно ли другое? –

+1

Не знаю - я слишком быстро отказался от этого подхода «attach .mdf», чтобы когда-либо дойти до точки, где мне пришлось выполнить скрипт '.sql' для этого файла ... –

ответ

2

На мой взгляд, весь недостаток AttachDbFileName = является ошибочным. Поскольку этот файл .mdf не привязан к экземпляру SQL Server, который уже установлен, есть много вещей, которые вы не можете сделать:

  • вы не можете использовать BACKUP резервную копию базы данных
  • вы не можете легко выполнить .sql сценарии с базой данных
  • и довольно несколько вещей

единственный действительно жизнеспособна решение, на мой взгляд было бы

  1. Установка SQL Server Express (и вы уже сделали это в любом случае)
  2. установки SQL Server Management Studio Express
  3. создать свою базу данных в SSMS Экспресс, дать ему логическое имя (например, YourDatabase)
  4. подключиться к нему с помощью своего логического имени базы данных (данный при создании на сервере) - и не вмешиваться в работу с файлами физической базы данных и пользовательскими экземплярами.В этом случае строка подключения будет что-то вроде:

    Data Source=.\\SQLEXPRESS;Database=YourDatabase;Integrated Security=True 
    

    и все остальное точно же, как раньше ...

+0

Вы должны взять параметр ** User Instance = true ** из строки подключения. –

Смежные вопросы