Получение имени базы данных из базы данных SQL Server Express в Visual Studio - PullRequest
2 голосов
/ 25 сентября 2011

В настоящее время я использую эту строку подключения для подключения к своей базе данных, созданной в Visual Studio:

Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Database1.mdf;User Instance=true

Я пытаюсь разместить сайт с IIS, чтобы можно было возиться с заголовками ответовно я получаю описанную здесь проблему: Строка подключения SQL Server Express для кода Entity Framework First

Я пытаюсь найти, какое имя базы данных указать, но безуспешно.Я попытался Initial Catalog=Database1, но это дало мне эту ошибку:

Невозможно создать файл 'D: \ docs \ Visual Studio 2010 \ Projects \ QuickHomePage \ QuickHomePage \ App_Data \ Database1.mdf', поскольку он уже существует,Измените путь к файлу или имя файла и попробуйте снова выполнить операцию.
Не удалось создать базу данных.Некоторые имена файлов не могут быть созданы.Проверьте связанные ошибки.

Я просто пытаюсь присоединиться к Database1.mdf.Почему он дает ошибки при попытке его создать?В одном комментарии предлагалось присоединить файл .mdf к другому экземпляру базы данных, чтобы посмотреть, что внутри него.

Требуется ли для этого запуск студии SQL Server Management?Каждый раз, когда я пытаюсь подключиться к ядру базы данных типа сервера и локальной машине, выдается ошибка соединения.

1 Ответ

3 голосов
/ 25 сентября 2011

Имя базы данных - это имя, которое вы даете своему файлу .MDF, когда присоединяете его к экземпляру сервера SQL Server (Express). Не существует фиксированного имени базы данных «внутри» MDF, которое вам нужно обнаружить - это полностью зависит от того, что вы называете своей базой данных на сервере.

Так что если вы прикрепите свой Database1.mdf так:

CREATE DATABASE CrazyDatabase ON
( FILENAME = N’C:\Data\Database1.mdf’ ),
( FILENAME = N’C:\Data\Database1_Log.ldf’ )
FOR ATTACH

тогда ваше имя базы данных будет CrazyDatabase - но это никак не связано с именем файла оригинального MDF-файла или каким-либо содержимым внутри него - вы также можете назвать его как угодно - как хотите.

В этом случае ваша новая строка подключения будет:

Server=.\SQLEXPRESS;Database=CrazyDatabase;Integrated Security=SSPI;
...