尝试将数据库从Azure GOV租户移动到标准Azure租户。据我所知,由于存储过程中的特殊字符(斜杠、美元符号等),导出失败了,这些字符被正确转义并作为独立的T-SQL脚本工作。我可以删除所有的sp,移动数据库,然后恢复。但一定有更好的办法。
还有谁对存储过程体中的特殊字符有问题吗?我愿意尝试其他方法在租户之间移动,但都是空手而归。
在代码中添加正确的参数处理将是处理此问题的更可靠的方法。
cmd.Parameters使用。AddWithValue(String parameterName, Object value) | SqlParameterCollection。添加方法
https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlparametercollection.add?redirectedfrom=MSDN&视图= dotnet -平台- ext - 5.0 # System_Data_SqlClient_SqlParameterCollection_Add_System_String_System_Object_
通过创建SQLCommand对象并为其添加参数来运行SQL,使用特殊字符作为参数会更简单。
要迁移资源,您可以使用Azure接口、Azure PowerShell、Azure CLI或REST API。将资源移动到新的资源组或订阅| https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/move-resource-group-and-subscription
在移动过程中,源组和目标组都是锁着的。直到重新定位完成,写入和删除活动禁用On资源组。您不能添加、更改或删除资源组中的资源被锁定。这并不意味着资源已经被冻结。应用程序使用如果迁移Azure SQL,数据库将不会经历任何停机时间将逻辑服务器及其数据库转移到不同的资源组或订阅。他们仍然可以访问数据库,可以阅读和给他们写信。虽然这把锁可以持续四个小时,但大多数机动在相当短的时间内完成。
在跨订阅移动资源之前必须确保以下内容:源订阅和目标订阅必须位于同一文件夹中。
- 在两个订阅中,单个用户帐户必须能够生成和删除资源。
- 必须同时迁移该服务器上的所有SQL数据库。
如果SQL服务器和目标目录位于不同的目录中,则可以将SQL服务器转移到临时试用订阅,然后将该订阅移动到目标目录(从旧门户),然后使用目标目录在新门户中完成移动。