azure-sql-database - Azure SQL 区分重音的对象名称
问题描述
我们有一个本地数据库,我们希望使用数据迁移助手将其上传到 Azure。我们的数据库使用排序规则 SQL_Latin1_General_CP1_CI_AI。我们在某些表名和列名中使用重音符号。在 SSMS 中编写查询时,如果我们在表名中省略重音符号,它仍然有效,但在 Azure 上会出错。有没有办法将 Azure SQL 配置为对对象名称不区分重音,同时对文本数据仍然不区分重音?
例如,如果我有一个名为 [Paramètres] 的表,然后我执行以下语句
SELECT *
FROM [Parametres]
它适用于 SSMS,但不适用于 Azure。我收到“无效的对象名称”错误
解决方案
重音敏感/不敏感取决于数据库排序规则。SQL Server 中的排序规则为您的数据提供排序规则、区分大小写和区分重音的属性。
请参考:<a href="https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver15" rel="nofollow noreferrer">排序规则和 Unicode 支持。</p>
您可以运行以下查询检查排序规则是否区分重音或不敏感:
IF 'a' = 'á' COLLATE SQL_Latin1_General_CP1_CI_AI
SELECT 'Values are the same'
ELSE
SELECT 'Values are different'
AS对口音敏感,对AI口音不敏感。例如,您的本地数据库排序规则SQL_Latin1_General_CP1_CI_AI
对口音不敏感。
请运行以下查询以检查您的 Azure SQL 数据库排序规则:
SELECT CONVERT (varchar, SERVERPROPERTY('collation')) AS 'Server Collation';
创建 Azure SQL 数据库后,我们无法更改它的排序规则。因此,无法将 Azure SQL 配置为不区分重音。
建议不要 DMA 将您的本地数据库迁移到现有的 Azure SQL 数据库。请使用导入 DACPAC 或 SSMS:将数据库部署到 Azure SQL 数据库:
推荐阅读
- apache - 如何使用 Apache 禁用文件夹索引?
- salesforce - 将 HTML5 转换为 Lightning Web 组件
- linux - 使用有限的 C99 标准函数集播种伪随机函数
- r - 将数据框合并到模型矩阵:R
- amazon-dynamodb - DynamoDB Scan获取nodejs上对象的属性
- vowpalwabbit - (Vowpal Wabbit) 上下文强盗问题中的 cb 模式
- vue.js - vuejs中无法通过eventBus检索数据
- r - R中每个ID/按ID的互相关(CCF)
- html - 在没有js的情况下检查复选框时如何切换栏
- python - CBV 通过 CBV 表单并进行验证