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
SQL Server-关于UNION和USE函数的语法_Sql_Sql Server_Tsql - Fatal编程技术网

SQL Server-关于UNION和USE函数的语法

SQL Server-关于UNION和USE函数的语法,sql,sql-server,tsql,Sql,Sql Server,Tsql,在我希望查询的同一台服务器上有一系列数据库。我正在使用相同的代码来查询数据库,并希望结果显示在单个列表中 我使用“USE”指定要查询的数据库,然后创建一些临时表对数据进行分组,然后使用最终的SELECT语句将数据库中的所有数据合并在一起 SELECT SomeColumn = T.SomeColumn FROM FirstDatabase.Schema.TableName AS T UNION ALL SELECT SomeColumn = T.SomeColumn FR

在我希望查询的同一台服务器上有一系列数据库。我正在使用相同的代码来查询数据库,并希望结果显示在单个列表中

我使用“USE”指定要查询的数据库,然后创建一些临时表对数据进行分组,然后使用最终的SELECT语句将数据库中的所有数据合并在一起

SELECT
    SomeColumn = T.SomeColumn
FROM
    FirstDatabase.Schema.TableName AS T
UNION ALL
SELECT
    SomeColumn = T.SomeColumn
FROM
    SecondDatabase.Schema.YetAnotherTable AS T
然后我使用UNION,然后是下一个数据库的第二个USE命令,依此类推

SQL Server在单词“UNION”上显示语法错误,但没有提供任何有关问题来源的帮助


我可能缺少一个角色吗。目前我没有在任何地方使用(或)。

您应该在表名之前使用数据库名:

SELECT valueFromBase1
 FROM `database1`.`table1`
  WHERE ...
UNION
SELECT valueFromBase2
 FROM `database2`.`table2`
  WHERE ...

应在表名之前使用数据库名:

SELECT valueFromBase1
 FROM `database1`.`table1`
  WHERE ...
UNION
SELECT valueFromBase2
 FROM `database2`.`table2`
  WHERE ...

USE
语句只是将会话重定向到同一实例上的另一个数据库,在这个问题上,实际上不需要从一个数据库切换到另一个数据库(有一些罕见的例外)

使用三部分符号连接结果集。您可以在连接到任何数据库时执行此操作

SELECT
    SomeColumn = T.SomeColumn
FROM
    FirstDatabase.Schema.TableName AS T
UNION ALL
SELECT
    SomeColumn = T.SomeColumn
FROM
    SecondDatabase.Schema.YetAnotherTable AS T
引擎将自动检查每个数据库上的登录用户,并验证您对基础表或视图的权限


UNION
将结果集添加在一起,除了
SELECT
UNION

之间执行
USE
语句之外,您不能执行其他操作(如
USE
),而
USE语句只会重定向会话以连接到同一实例上的不同数据库,在这个问题上,您实际上不需要从一个数据库切换到另一个数据库(这里有一些罕见的例外)

使用三部分符号连接结果集。您可以在连接到任何数据库时执行此操作

SELECT
    SomeColumn = T.SomeColumn
FROM
    FirstDatabase.Schema.TableName AS T
UNION ALL
SELECT
    SomeColumn = T.SomeColumn
FROM
    SecondDatabase.Schema.YetAnotherTable AS T
引擎将自动检查每个数据库上的登录用户,并验证您对基础表或视图的权限


UNION
将结果集添加到一起,除了在
UNION
之间选择
之外,您不能执行另一个操作(如
使用
),您可以发布一些代码吗?不要使用
,完全限定您的表:
数据库.schema.table
您可以发布一些代码吗?不要使用
,完全限定您的表:
database.schema.table