Tsql T-SQL:@variable | internal join | 2数据库

Tsql T-SQL:@variable | internal join | 2数据库,tsql,sql-server-2008-r2,Tsql,Sql Server 2008 R2,实例中的SQL Server 2008 R2-2数据库,Mandant_2和tlock 我需要使用@variable在数据库之间执行一个内部联接SQL命令: DECLARE @t AS TABLE ( c VARCHAR(100) ) INSERT @t VALUES ('[Mandant_2].[dbo].[tartikel]') UPDATE tlock.dbo.temp SET Warengruppe = a.kWarengruppe FROM

实例中的SQL Server 2008 R2-2数据库,
Mandant_2
tlock

我需要使用
@variable
在数据库之间执行一个内部联接SQL命令:

    DECLARE @t AS TABLE (
        c VARCHAR(100)
    )

    INSERT @t VALUES ('[Mandant_2].[dbo].[tartikel]')

UPDATE tlock.dbo.temp SET Warengruppe = a.kWarengruppe
FROM tlock.dbo.temp d
INNER JOIN @t a ON d.HAN = a.cHAN
我得到一个错误:

消息207,级别16,状态1,程序SPMyStoreProducted,第39行
无效的列名“cHAN”

不幸的是,我不知道为什么


谢谢

代码中的最后一行是什么意思

INNER JOIN @t a ON d.HAN = a.cHAN
表@t有一个名为c的列,但没有一个名为cHAN的列。 你是说

INNER JOIN @t a ON d.HAN = a.c
概念验证:

试试这个

DECLARE @t AS TABLE (
c VARCHAR(100)
)

INSERT @t VALUES ('[Mandant_2].[dbo].[tartikel]')

select cHAN from @T
你会得到

Msg 207, Level 16, State 1, Line 7
Invalid column name 'cHAN'.

我想连接条件应该是最后一行的
d.HAN=a.HAN
。欢迎光临。如果这解决了你的问题,请接受答案。