Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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
Sql 如何在多个数据库中使用EXCEPT子句_Sql_Sql Server - Fatal编程技术网

Sql 如何在多个数据库中使用EXCEPT子句

Sql 如何在多个数据库中使用EXCEPT子句,sql,sql-server,Sql,Sql Server,我有一个带except子句的查询。在Exception下面,我的第二个查询来自与第一个查询使用的数据库不同的数据库 看起来像这样 SELECT field1 as a FROM table 1 EXCEPT USE differentdb SELECT field2 as a FROM table 2 我也试过这个 SELECT field1 as a FROM table 1 EXCEPT USE differentdb SELECT field2 as a FROM differentdb

我有一个带except子句的查询。在Exception下面,我的第二个查询来自与第一个查询使用的数据库不同的数据库

看起来像这样

SELECT field1 as a
FROM table 1
EXCEPT
USE differentdb
SELECT field2 as a
FROM table 2
我也试过这个

SELECT field1 as a
FROM table 1
EXCEPT
USE differentdb
SELECT field2 as a
FROM differentdb.dbo.table2
我意识到这在SQL中是不允许的,因为我得到了以下错误:

Msg 468,级别16,状态9,第1行无法解析排序规则 “SQL拉丁语通用”和“CP1”之间的冲突 “Latin1_General_CI_AS”在等于运算中


我想知道是否有其他方法可以编写此查询并完成交叉db EXCEPT子句。

动态更改列的排序规则,如:

SELECT field1 COLLATE SQL_Latin1_General_CP1_CI_AS as a
FROM table 1
EXCEPT
SELECT differentdb.SchemaName.field2 as a
FROM table 2
Us可以使用子句从其他数据库转换排序规则

SELECT field2 collate SQL_Latin1_General_CP1_CI_AS as a
FROM table 2
在这里,您应该使用正确的排序规则-因为第一个和第二个数据库的排序规则信息不足

或者你可以简单地使用

SELECT field2 collate database_default as a
FROM table 2
这将导致
collate
子句继承当前数据库的排序规则