更改Azure SQL Server排序

问题描述:

我们正试图将我们的数据库放在sql azure中,并且遇到问题。我们有一个存储过程是整理Latin1_General_CI_AI的,并在那里是做一些加入与sys.objects中这似乎有SQL_Latin1_General_CP1_CI_AS归类。当我们试图创建存储过程,我们得到的错误更改Azure SQL Server排序

无法解析规则“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AI”在等于操作之间的排序规则冲突。

我们可以通过在sys.object加入的末尾添加COLLATE SQL_Latin1_General_CP1_CI_AS来创建存储过程,但我们有多个地方使用sys.object和我也看到了该临时表可能有同样的问题。

所以我的问题是,有没有办法改变“服务器”上的排序规则,创建新的SQL Server(逻辑服务器)时看不到任何东西。这将为我们省去在任何地方强制整理的麻烦。

+0

如果您想更改数据库的排序规则,您应该创建一个票据。支持团队会在合理的时间内为您提供帮助。 – Pio

目前,无法更改现有Azure SQL数据库的排序规则。但是,您可以使用指定创建数据库时的排序规则。 如果您通过Azure Portal进行创建,则会在“创建”对话框中看到“排序规则”选项。在这里看到一些细节:https://azure.microsoft.com/en-us/documentation/articles/sql-database-get-started/#create-a-new-azure-sql-database

我能用bacpac做到这一点。

  1. 出口Management Studio中使用“导出数据层应用程序”数据库
  2. 充分利用BACPAC
  3. 的副本通过更改扩展名重命名副本为.zip
  4. ,打开拉链和打开model.xml文件(使用7-Zip打开拉链,然后双击打开记事本中的XML。编辑和保存)
  5. 更改属性名称=“归类” VALUE =“Latin1_General_CS_AS”
  6. 拉链重命名回到bacpac
  7. bacpac包含一个校验和,它用来验证包。这需要更新。当然还有一个dacchksum.exe实用程序的git副本。只需运行新的bacpac即可获得校验和值。
  8. 重命名BACPAC回拉链
  9. Zip文件里,打开origin.xml并更新校验
  10. 重命名的zip回BACPAC
  11. 尝试再次进口!
+0

第7步只是一个澄清使用“计算”​​而不是“存储”,它完美的作品! – Jonathan