0

为了存储UTF-8在 SQL 2019 的 varchar 字段中,我们正在使用排序规则将现有 DDL 运行到新的 SQL2019 数据库中LATIN1_GENERAL_100_CI_AS_SC_UTF8

整个 30K 行的 DDL 仅执行一个给出错误的填充操作。

update ad
   set ad.APPDEFAULTNAME = stuff(APPDEFAULTNAME,len(appdefaultname)-charindex('_', reverse(appdefaultname))+2, len(APPDEFAULTNAME),it.index_title)
  from APP_DEFAULTS ad
  join #index_title it
    on substring(APPDEFAULTNAME,len(appdefaultname)-charindex('_', reverse(appdefaultname))+2,len(APPDEFAULTNAME)) = cast(it.[index] as varchar(30))

可能是什么原因 ??

4

1 回答 1

0

每当您使用与实例排序规则不同的数据库排序规则时,如果可能,您应该启用包含数据库排序规则。这将为您提供以下行为,特别是临时表将使用 DATABASE_DEFAULT 排序规则:

在此处输入图像描述

在 Azure SQL 数据库中,它始终处于启用状态,而在 SQL Server 中,您可以通过将数据库包含设置为“部分”来启用它。

于 2020-04-13T14:28:29.813 回答