Создание таблиц членства, SPROC, представлений в присоединенной БД - PullRequest
4 голосов
/ 19 апреля 2010

В моем проекте VS 2010 у меня есть mdf-файл базы данных AdventureWorks. Могу ли я в любом случае создать таблицы членства в своей базе данных AdventureWorks. Я знаю, что могу отсоединить присоединение базы данных в SQL SERVER 2008. Создайте таблицы и затем отсоедините. Но у меня нет SQL SERVER 2008, и я хочу посмотреть, можно ли это сделать с помощью инструмента командной строки.

Я пробовал это, но безрезультатно:

aspnet_regsql.exe -d AdventureWorks.mdf -A mr -E -S .\SQLEXPRESS

Обновление:

Если я щелкну правой кнопкой мыши и увижу свойства базы данных AdventureWorks.mdf, имя отобразится как

"C4BE6C8DA139A060D14925377A7E63D0_64A_10 \ ADVENTUREWORKSWEBFORMS \ ADVENTUREWORKSWEBFORMS \ ADVENTUREWORKS \ APP_DATA \ ADVENTUREWORKS.MDF"

Это интересно!

Ответы [ 2 ]

1 голос
/ 26 апреля 2010

Запустите эту команду. Замените C: \ My Project \ APP_DATA \ aspnetdb.mdf на путь к вашему файлу mdf:

aspnet_regsql -A all -C "Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True" -d "C:\MyProject\APP_DATA\aspnetdb.mdf"
1 голос
/ 21 апреля 2010

Я думаю, проблема в том, что вы пытаетесь сделать это в отдельной базе данных SQLExpress. Возможно, у вас есть другая копия AdventureWorks, которая на самом деле постоянно прикреплена, поэтому вы не видите никаких ошибок.

Пожалуйста, попробуйте следующее:

1) Если у вас еще нет копии SQL Server Management Studio [Express], получите ее - с этим будет легче работать, чем в Visual Studio.

2) Запустите следующий скрипт:

USE AdventureWorks

SELECT name, physical_name
FROM sys.database_files

3) Если вы получили сообщение об ошибке, в котором говорится, что база данных не существует, перейдите к шагу 5. Если вы увидите physical_name записи, которые не соответствуют локальным в вашей папке app_data, перейдите к следующему шагу. Если вы видите записи, которые являются в той же папке app_data, то я в тупике.

4) Выполните следующее, чтобы отсоединить существующую БД:

EXEC sp_detach_db 'AdventureWorks'

5) Выполните следующее, чтобы подключить базу данных SQL Express для вашего приложения:

EXEC sp_attach_db 'AdventureWorks',
    'C:\inetpub\wwwroot\MyApp\App_Data\ASPNETDB.MDF',
    'C:\inetpub\wwwroot\MyApp\App_Data\ASPNETDB_log.ldf'

6) Запустите инструмент aspnet_regsql еще раз с теми же параметрами, которые вы использовали изначально, за исключением того, что в конце имени базы данных не включается .mdf.

7) Проверьте в SSMS [E], что таблицы были созданы.

8) Снова отключите базу данных с помощью EXEC sp_detach_db 'AdventureWorks' (вам нужно будет сделать это, если приложение полагается на специальное вложение в строке подключения, что, я держу пари, делает).

...