在附加数据库中创建成员资格表,SPROC,视图

时间:2010-04-19 16:36:18

标签: sql-server asp.net-membership

我的VS 2010项目中有AdventureWorks数据库mdf文件。无论如何我可以在AdventureWorks数据库中创建Membership表。我知道我可以在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 个答案:

答案 0 :(得分:1)

我认为问题在于您是在尝试在分离的SQLExpress数据库上执行此操作。您可能拥有另一个版本的AdventureWorks,它实际上是永久附加的,这就是您没有看到任何错误的原因。

请尝试以下方法:

1)如果您还没有SQL Server Management Studio [Express]的副本,get it - 它将比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 DB:

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'分离数据库(如果应用程序依赖于其连接字符串中的ad-hoc附件,则需要执行此操作,我打赌它会这样做。)

答案 1 :(得分:1)

运行此命令。将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"