a13*_*300 3 sql-server collation t-sql azure-sql-database
我希望我的应用程序在所有数据库级别(服务器、数据库、列)使用相同的排序规则:Latin1_General_CI_AS 这是Dan Guzman推荐的具有一致排序规则并从一开始就获得排序规则配置的建议。
Azure SQL Server(服务器)的默认排序规则是SQL_Latin1_General_CP1_CI_AS。我想将其更改为Latin1_General_CI_AS。或者使用排序规则 Latin1_General_CI_AS创建一个新的 Azure Sql Server(服务器)。对于本地 SQL Server,这是可能的。
在2010年的SQL Azure 排序规则文档中声明...服务器和数据库排序规则不能在 SQL Azure 中配置...除此之外,我没有发现有用的东西。
如果我可以创建一个新的 Azure SQL Server(服务器),并且排序规则为 Latin1_General_CI_AS ,我会非常高兴。
是否有可能或存在解决方法?我真的很感激任何帮助。
现在可以为SQL Azure 数据库用户数据库指定用户数据库的排序规则(例如CREATE DATABASE YourDatabase COLLATE Latin1_General_CI_AS;)。
编辑:
逻辑 Azure SQL Server 排序规则固定在 SQL_Latin1_General_CP1_CI_AS 并且不可配置(截至撰写本文时)。但是,此排序规则仅用于 master、tempdb 和 user 数据库中的系统对象。除非另有说明,否则它不会影响 tempdb 中用户对象的排序规则,即当前 Azure SQL 数据库上下文(不是逻辑 SQL Server)的排序规则。此行为不同于本地和 IaaS SQL Server 实例,其中实例排序规则还确定用于系统和用户对象的 tempdb 默认数据库排序规则,因此具有更大的影响。
考虑到这一点,您可能会在 Azure SQL 数据库世界中正交考虑系统和用户排序规则,因为只要始终使用相同的排序规则,您就不会在用户空间中遇到排序规则冲突错误。此外,如果您使用 Latin1_General_CI_AS 或 SQL_Latin1_General_CP1_CI_AS 作为您的用户数据库排序规则,您仍将获得与系统对象名称相同的排序和比较行为,因为 Windows 排序和比较规则用于 Unicode 数据,并且系统对象名称存储为 nvarchar( 128)(又名系统名称)。