将表从不同的数据库连接到表变量

时间:2015-06-19 14:08:44

标签: sql-server inner-join

我正在处理一个查询,该查询将一个表中的表连接到另一个数据库上的表变量。但是每次我尝试运行它时,都会收到一条错误消息,说我需要声明表变量,但它已经声明了。请帮忙!

declare @Employee Table
(
    agt_responsible int, 
    employee_last_name varchar(50), 
    employee_first_name varchar(50),
    #_of_Compliments int, 
    DEBIT_Count int,
    DEBIT_POTENTIAL_AMT INT, DEBIT_TNT_AMT int,
    #_of_Value_Adds int,
    amt_of_Value_Adds int
) 

INSERT INTO @Employee
Exec proc_performance_AGT_roi '2015-05-01','2015-05-30'

SELECT * 
from omadb08.TANDT_EMPLOYEE.dbo.ADP_EMPLOYEE 
     INNER JOIN @Employee 
     ON @Employee.agt_responsible = OMADB08.TANDT_EMPLOYEE.DB0.ADP_EMPLOYEE.EMPLOYEE_ID

1 个答案:

答案 0 :(得分:4)

由于解析查询的方式,当您在联接中使用表变量时,您需要使用带引号的标识符(""INNER JOIN @Employee ON @Employee.agt_responsible )或别名,因此请更改此部分:

INNER JOIN @Employee e
ON e.agt_responsible

要么:

INNER JOIN @Employee 
ON [@Employee].agt_responsible

INNER JOIN @Employee 
ON "@Employee".agt_responsible

{{1}}

我会使用别名选项,因为我认为它使查询更容易阅读。