MSSQL整理更新查询

时间:2018-09-24 09:27:48

标签: sql sql-server collation

我们有一个带有链接服务器的MSSQL Server,该服务器包含一些视图。我们正在尝试使用链接服务器的视图中的值更新主服务器上表中的字段。

执行查询时,我们会收到有关归类的错误:

Mens. 468, Nivel 16, Estado 9, Línea 6
No se puede resolver el conflicto de intercalación entre "Modern_Spanish_100_CI_AS" y "Modern_Spanish_CI_AS" de la operación equal to.

我们需要做的一个更新示例:

Update therefore.dbo.thecat10

Set alias = (SELECT therefore.dbo.vClientes.alias
                        From therefore.dbo.vClientes
                        Where therefore.dbo.thecat10.codigo=therefore.dbo.vClientes.código)
WHERE therefore.dbo.thecat10.codigo = ( SELECT therefore.dbo.vClientes.código
                               FROM therefore.dbo.vClientes
                               Where therefore.dbo.thecat10.codigo = therefore.dbo.vClientes.código)

我尝试在比较后添加归类Modern_Spanish_CI_AS,但是它不起作用。

1 个答案:

答案 0 :(得分:2)

Update cat set
  alias = cli.alias
FROM therefore.dbo.thecat10 cat
INNER JOIN therefore.dbo.vClientes cli
  on cli.código COLLATE Modern_Spanish_CI_AS = cat.codigo
WHERE cat.alias != cli.alias COLLATE Modern_Spanish_CI_AS