Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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数据库连接相同的表_Sql_Sql Server - Fatal编程技术网

从不同的SQL Server数据库连接相同的表

从不同的SQL Server数据库连接相同的表,sql,sql-server,Sql,Sql Server,我正在尝试连接两个同名的表,但它们位于不同的数据库上,如下所示: SELECT DB2.DBO.DICTIONARY.ID AS ID, DB2.DBO.DICTIONARY.NAME AS NN, DB1.DBO.DICTIONARY.NAME AS N FROM DB2.DBO.DICTIONARY INNER JOIN DB1.DBO.DICTIONARY AS DICT ON DB2.DBO.DICTIONARY.ID = DICT.ID 但我一直在犯错误: 无法找到多

我正在尝试连接两个同名的表,但它们位于不同的数据库上,如下所示:

SELECT DB2.DBO.DICTIONARY.ID AS ID,
    DB2.DBO.DICTIONARY.NAME AS NN,
    DB1.DBO.DICTIONARY.NAME AS N
FROM DB2.DBO.DICTIONARY
INNER JOIN DB1.DBO.DICTIONARY AS DICT
ON DB2.DBO.DICTIONARY.ID = DICT.ID
但我一直在犯错误:

无法找到多部分标识符DB1.DBO.DICTIONARY.NAME 束缚


我的目标是,在ID上连接它们,但为名称列指定不同的别名。因为DB1.NAME中的数据与DB2.NAME中的数据不同。

您已经为表DB1.DBO.DICTIONARY使用了一个别名,因此不能再使用相同的名称引用它。您必须使用别名DICT来引用它:


在select中使用DICT.NAME作为N而不是DB1.DBO.DICTIONARY.NAME作为N,因为您已经从DB1中为字典表使用了别名。
SELECT 
  DB2.DBO.DICTIONARY.ID AS ID,
  DB2.DBO.DICTIONARY.NAME AS NN,
  DICT.NAME AS N
FROM DB2.DBO.DICTIONARY 
INNER JOIN DB1.DBO.DICTIONARY AS DICT
ON DB2.DBO.DICTIONARY.ID = DICT.ID