我正在研究ASP.NET Web Forms應用程序SqlMembershipProvider
。由於它也在Azure上運行,因此我使用KB2006191 Updated ASP.NET scripts for use with SQL Azure來創建表和SP。Azure和獨立SQL Server上的SqlMembership
顯然,它們無法順利使用獨立的SQL Server 2008 R2 SP1。特別是dbo.aspnet_Users_DeleteUser
觸發一個內部錯誤:
Msg 8624, Level 16, State 1, Procedure aspnet_Users_DeleteUser, Line 111 Internal Query Processor Error: The query processor could not produce a query plan. For more information, contact Customer Support Services.
編輯:
我打破了這個問題,其實際失效一個SQL語句(即使我硬編碼爲@UserId
的值):
DELETE FROM dbo.aspnet_Users WHERE UserId = @UserId
原文:
我試圖通過downloading a Cumulative Update Package and setting trace flag 4199修復我的SQL Server安裝。但是,這並沒有幫助。說實話,我不太確定我是否正確應用了這個補丁。我正在對此進行進一步研究。
此外,我試圖重寫SP一點,因爲我在網上發現了一些提示。這也沒有幫助,無論如何,獨立SQL Server的aspnet_regsql
生成相同的查詢。其實,我試圖把這個擺脫子查詢的周圍線111:
IF ((@TablesToDeleteFrom & 1) <> 0 AND
(@TablesToDeleteFrom & 2) <> 0 AND
(@TablesToDeleteFrom & 4) <> 0 AND
(@TablesToDeleteFrom & 8) <> 0 AND
(EXISTS (SELECT UserId FROM dbo.aspnet_Users WHERE @UserId = UserId)))
...這個:
IF ((@TablesToDeleteFrom & 15) <> 0)
有沒有人遇到過類似的問題,處理會員和兩個Azure和獨立的SQL Server?
我們使用通用提供商,他們工作得很好。請注意,它們只適用於ASP.Net 4.0+。 – 2012-02-28 18:52:29
+1(和答案)以獲得真正的改進。我現在通過索引我自己的表中有一個列的列來解決我的實際問題,該表中有一個對aspnet_Users的外鍵引用。然而,這通常不是適應性的。 – 2012-02-29 07:20:58