我正在尝试将数据库从SQL Server 2008迁移到SQL Azure。我尝试迁移的数据库包括ASP.NET成员资格数据库(http://www.asp.net/web-forms/tutorials/moving-to-aspnet-20/membership)。当我在SQL Server 2008数据库中运行它时,此数据库工作正常。但是,当我尝试针对SQL Azure对用户进行身份验证时,收到错误消息:
“此版本的SQL Server不支持没有聚簇索引的表。请创建聚簇索引并重试。”
但是,我不知道该怎么做。当我尝试更新aspnet_Applications表上的索引时,我收到外键问题。我尝试将非聚集索引迁移到聚簇索引时使用以下内容:
ALTER TABLE aspnet_Applications
DROP CONSTRAINT PK__aspnet_A__SOMEID
ALTER TABLE aspnet_Applications
ADD CONSTRAINT PK__aspnet_A__SOMEID PRIMARY KEY CLUSTERED(ApplicationId)
有人可以帮我解决这个问题吗?谢谢!
答案 0 :(得分:5)
我遇到了ASP.NET成员资格提供程序表(非聚集索引)的问题,并且缺少存储过程"WITH (NOLOCK)"
等上的aspnet_Membership_GetNumberOfUsersOnline
语句。
此处的迁移工具修复了问题并将数据库导出到Azure。
<强> http://sqlazuremw.codeplex.com/ 强>
这是一个很好的向导,可以连接到现有的SQL Server并将选定的数据库迁移到Azure。
答案 1 :(得分:2)
如果可以,请尝试使用ASP.NET Universal Providers For SqlExpress 1.1(我希望他们更改名称,因为它有点用词不当)。这是在SQL Azure和独立SQL Server中启用SQL成员资格,角色和会话提供程序的官方支持方法。
以下是其他几个参考链接:
答案 2 :(得分:1)
SQL Azure与SQL Server不同,因为并非所有功能都受支持。有一个特殊的SQL Azure成员脚本来创建数据库。
见这里:http://support.microsoft.com/kb/2006191/de
我希望这会有所帮助。
问候。