【发布时间】:2016-11-16 20:48:08
【问题描述】:
我已经在存储过程中声明了一个表,即:
DECLARE @fooTable table ( idfoo INT)
INSERT INTO @fooTable
EXEC getBOO
SELECT * FROM @fooTable
我想将此表与本地服务器数据库中的其他表连接起来,即:
SELECT *
FROM tbl1
RIGHT JOIN tbl2 ON tbl1.foofield = tbl2.foofield
RIGHT JOIN @fooTable ON tbl2.foofield = @fooTable.foofield ;
我收到一个错误:
必须声明标量变量“@fooTable”
我搜索了一下这个错误,我发现的大多数帖子都表明我试图访问的表超出了范围。
@fooTable 的声明以及 JOIN 查询是同一个存储过程的一部分,所以我找不到任何范围界定问题。
将变量表 (@fooTable) 与本地服务器中的表连接的最佳做法是什么? (tbl1, tbl2) ?
【问题讨论】:
-
给表变量一个别名
标签: sql-server join