从不同的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