我们有一个本地数据库,我们希望使用数据迁移助手将其上载到Azure。我们的数据库使用排序规则SQL_Latin1_General_CP1_CI_AI。我们在一些表名和列名中使用重音符号。在SSMS中编写查询时,如果我们省略了表名中的重音,它仍然可以工作,但在Azure上会出现错误。有没有一种方法可以将Azure SQL配置为对对象名称不区分重音,同时仍然对文本数据不区分重音?
例如,如果我有一个名为Paramètres的表,然后执行以下语句
SELECT *
FROM [Parametres]它可以在SSMS中工作,但不能与Azure一起工作。我收到一个"Invalid object name“错误
发布于 2020-08-14 11:12:38
区分重音/不区分重音取决于数据库排序规则。SQL Server中的排序规则为数据提供排序规则、区分大小写和区分重音属性。
请参考:Collation and Unicode support。
如果排序规则区分重音或不区分,您可以运行以下查询检查:
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数据库:

https://stackoverflow.com/questions/63400539
复制相似问题