Azure sql database 更改Azure SQL Server排序规则
我们正试图将数据库放在SQLAzure中,我们遇到了一个问题。我们有一个排序规则为Latin1\u General\u CI\u AI的存储过程,其中有一些与sys.objects的联接,它似乎有一个排序规则为SQL\u Latin1\u General\u CP1\u CI\u AS。当我们试图创建存储过程时,我们得到了错误 无法解决等于操作中“SQL\u Latin1\u General\u CP1\u CI\u AS”和“Latin1\u General\u CI\u AI”之间的排序规则冲突 我们可以通过在sys.object连接的末尾添加COLLATE SQL\u Latin1\u General\u CP1\u CI\u AS来创建存储过程,但是我们有多个地方使用sys.object,而且我还了解到临时表可能有同样的问题Azure sql database 更改Azure SQL Server排序规则,azure-sql-database,collation,Azure Sql Database,Collation,我们正试图将数据库放在SQLAzure中,我们遇到了一个问题。我们有一个排序规则为Latin1\u General\u CI\u AI的存储过程,其中有一些与sys.objects的联接,它似乎有一个排序规则为SQL\u Latin1\u General\u CP1\u CI\u AS。当我们试图创建存储过程时,我们得到了错误 无法解决等于操作中“SQL\u Latin1\u General\u CP1\u CI\u AS”和“Latin1\u General\u CI\u AI”之间的排序规则
因此,我的问题是,有没有办法更改“服务器”的排序规则,在创建新的SQL server(逻辑服务器)时,我看不到任何内容。这将省去我们到处强制排序的麻烦。目前,无法更改现有Azure SQL数据库的排序规则。但是,您可以在创建数据库时指定排序规则。
如果您正在通过Azure Portal创建,您将在创建对话框中看到排序规则选项。请参阅此处的一些详细信息:我可以使用bacpac完成此操作
以下是Microsoft技术支持人员引导我使用命令行导出、修改和创建新数据库的过程。此方法有效,而使用SSMS的等效过程导致错误842
sqlpackage.exe/Action:Export/ssn:{database server}.database.windows.net/sdn:{database}/su:{user name}/sp:{password}/tf:{local bacpac path}
.bacpac
文件重命名为以.zip
结尾model.xml
和Origin.xml
中提取model.xml
中,编辑DataSchemaModel/model/Element[Type=“SqlDatabaseOptions”]/Property[Name=“Collation”]
hash.ps1
,然后从PowerShell运行hash.ps1
。出现提示时,指定model.xml
的路径。脚本将打印model.xml
的哈希值Origin.xml
中,使用新哈希更新DacOrigin/Checksums/Checksum[Uri=“/model.xml”]
model.xml
和Origin.xml
文件更新zip.bacpac
sqlpackage.exe/Action:Import/tsn:{database server}.database.windows.net/tdn:{database}/tu:{user name}/tp:{password}/sf:{local bacpac path}/p:DatabaseEdition=Standard/p:DatabaseServiceObjective=S1
使用与您的工作量相匹配的数据库版本和服务目标来代替标准版和S1版hash.ps1
$modelXmlPath=读取主机“model.xml文件路径”
$hasher=[System.Security.Cryptography.HashAlgorithm]::Create(“System.Security.Cryptography.SHA256CryptoServiceProvider”)
$fileStream=New Object System.IO.fileStream-ArgumentList@($modelXmlPath[System.IO.FileMode]::Open)
$hash=$hasher.ComputeHash($fileStream)
$hashString=“”
Foreach($hash中的b){$hashString+=$b.ToString(“X2”)}
$fileStream.Close()
$hashString
如果要更改数据库的排序规则,应创建一个票证。支持团队将在合理的时间内为您完成这项工作。只需对步骤7进行说明,使用“计算”而不是“存储”,它就能完美工作!不要压缩并使用dacchksum.exe运行此脚本$modelXmlPath=“path2model\model.xml”$hasher=[System.Security.Cryptography.HashAlgorithm]::Create(“System.Security.Cryptography.SHA256CryptoServiceProvider”)$fileStream=new object System.IO.fileStream`-ArgumentList@($modelXmlPath[System.IO.FileMode]::Open)$hash=$hasher.ComputeHash($fileStream)$hashString=”“Foreach($hash中的b){$hashString+=$b.ToString(“X2”)}$fileStream.Close()$hashString update Orgin.xml和zip