我使用表单身份验证来处理用户并尝试将我的数据库部署到SQL Azure,但收到此错误消息:
我使用的四个列表中唯一的表是aspnet_Membership
,我使用的唯一其他表是aspnet_Users
来实现表单身份验证。什么是TextInRowSize
以及为什么SQL Azure关心它?我是否可以选择修改aspnet_Membership
以使其兼容?
如果完全删除当前系统并将其替换为我自己的系统会更容易,我也很好。
答案 0 :(得分:0)
这看起来像是数据层应用程序框架中的错误。我可以建议一个解决方法来将您的数据库带到Azure: 从命令行使用SqlPackage.exe(https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx)来提取包含所有表数据的dacpac文件。然后使用SqlPackage.exe将该dacpac文件部署到Azure中的数据库。 extract命令看起来像:
C:\>"c:\Program Files\Microsoft SQL Server\120\DAC\bin\SqlPackage.exe" /a:extract /scs:"Data Source=yourSqlServer;Integrated Security=true;Initial Catalog=yourDatabase" /tf:C:\temp\mydatabase.dacpac /p:ExtractAllTableData=true
导入命令看起来像:
C:\>"c:\Program Files\Microsoft SQL Server\120\DAC\bin\SqlPackage.exe" /a:publish /tcs:"Data Source=yourAzureSQLServer.database.windows.net;User Id=yourUserId;Password=yourPassword;Initial Catalog=yourDatabase" /sf:C:\temp\mydatabase.dacpac
答案 1 :(得分:0)
如此快速的建议,因为我看到你正在使用V12,现在应该支持这些属性。
首先确保您至少使用SSMS 2014 SP1,这有许多使用V12的修复程序。其次,请确保将2015年5月更新安装到DacFX(这是创建bacpac文件的程序),您可以在此处安装它:http://www.microsoft.com/en-us/download/details.aspx?id=46898
这可以让您获得最佳的导入/导出工作机会。
答案 2 :(得分:0)
这是通过为数据库生成SQL Azure脚本并在Azure上运行它来解决的。以下是我如何解决它:
首先,打开SQL Server,右键单击要传输的数据库,然后单击"任务>生成脚本......"
接下来,点击"高级"在脚本选项面板上,找到数据库引擎类型的行"脚本。"选择" Windows Azure SQL数据库"然后单击“确定”(注意:如果您还有要传输的数据,请选择"架构和数据"从"数据类型到脚本"选项)。
继续执行脚本生成对话框的其余部分,记住保存脚本文件的位置。使用SQL Server或windowsazure.com连接到数据库服务器。为新数据库生成新查询,输入由SQL Server生成并执行的脚本。
答案 3 :(得分:-2)
似乎TextInRowSize为较旧的SQL Server类型(如text和ntext)存储大数据。您需要将其类型更改为nvarchar(max)。
以下是更详细说明的链接。