Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MSSQL更新查询排序规则_Sql_Sql Server_Collation - Fatal编程技术网

MSSQL更新查询排序规则

MSSQL更新查询排序规则,sql,sql-server,collation,Sql,Sql Server,Collation,我们有一个带有链接服务器的MSSQL服务器,其中包含一些视图。我们正在尝试使用链接服务器视图中的值更新主服务器上表中的字段 当我们执行查询时,我们会得到有关排序规则的错误: 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

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

当我们执行查询时,我们会得到有关排序规则的错误:

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)

在比较之后,我尝试添加了collate Modern_西班牙语_CI_,但不起作用

so.dbo.thecat10.alias
so.dbo.vclients.alias
的排序规则是什么?另外,我在那个查询中看不到COLLATE?您使用COLLATE尝试的查询是什么?我在Where子句之后添加了COLLATE,但没有更改。服务器的排序规则是Modern_Spanish_CI_AS,链接的服务器是Modern_Spanish_100_CI_AS。我刚刚运行了查询,虽然没有出现错误,但它不会更新字段。0行受影响。我看不到您的数据。尝试根据您的情况调整
where
条件。无论如何,排序规则问题现在已经解决了,对吗?我删除了最后一个Where子句。虽然我不是专家,但我认为这是不必要的。似乎字段已更新,我将检查完整性。
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