2012-04-13 85 views
5

我正在尝试将SQL Server 2008中的数据库迁移到SQL Azure。我正在尝试迁移的数据库包括ASP.NET成员资格数据库(http://www.asp.net/web-forms/tutorials/moving-to-aspnet-20/membership)。这个数据库在我的SQL Server 2008数据库中运行时工作正常。但是,当我尝试使用SQL Azure对用户进行身份验证时,出现以下错误消息:将ASP.NET成员数据库迁移到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

将服务器升级到支持堆的SQL DB V12,与V11相比,它更接近于SQL独立版。 – 2015-09-05 05:42:04

回答

2

如果可以,请尝试使用ASP.NET Universal Providers For SqlExpress 1.1(我希望他们会更改名称,因为它有点用词不当)。这是在SQL Azure和独立SQL Server上启用SQL成员资格,角色和会话提供程序的官方支持方法。

这里有一对夫妇的其他环节以供参考:

Scott Hanselman - Introducing System.Web.Providers

SQL Azure Team Blog - Using SQL Azure for Session State

+0

SQL Azure现在支持V12服务器上的堆,因此这不再是一个问题。https://msdn.microsoft.com/library/ms188029.aspx?f=255&MSPPError=-2147217396 – ckarst 2015-08-18 15:26:54

2

SQL Azure与SQL Server不同,因为并不支持所有功能。有一个特殊的SQL Azure成员资格脚本来创建数据库。

在这里看到:http://support.microsoft.com/kb/2006191/de

我希望这有助于。

问候。

+0

谢谢,这真的帮助我选择的答案没有。 – Quibblesome 2012-08-16 19:24:03

+0

链接不再工作:( – noelicus 2016-09-12 12:00:13

+0

成员资格提供者已被弃用,因此该脚本将不再工作。但是有一个新的成员资格实现。请看这个:http://aaron-hoffman.blogspot.de/ 2013_02_01_archive.html – MUG4N 2016-09-12 16:56:54

6

我曾与ASP.NET成员资格提供表(非聚集索引)问题和缺少"WITH (NOLOCK)"声明存储过程aspnet_Membership_GetNumberOfUsersOnline

此处找到的迁移工具可以解决问题并将数据库导出到Azure。

http://sqlazuremw.codeplex.com/

这是一个很好的向导,可以连接到现有的SQL Server和迁移选定数据库天青。

+0

此SQL Azure迁移向导做了这个很简单,并且无缝地解决了aspnet_Membership的所有问题。好东西。 – 2013-12-04 23:57:08

+0

谢谢你真的帮了我很大的忙! – 2014-06-12 12:09:59

+0

下载v5.15的时候,这对我有用。6发布。 – 2015-09-04 19:07:18