declare @docs table(
DocID int
)
insert into @docs (DocID)
select DocID
from tblDoc
where tblDoc.BatchID = #Batch_id#
select *
from tblPage
inner join [@docs]
on tblPage.DocID = [@docs].DocID
我尝试将@docs包装在方括号中,我尝试删除where子句,我尝试了不同的插入命令排列,但都没有成功。
我一直得到
必须声明标量变量@ docs"消息,或"无效的对象名称消息。
我错过了一些明显的东西吗?
使用Microsoft SQL Server 2008(RTM) - 10.0.1600.22
答案 0 :(得分:3)
别名你的表var
select *
from tblPage
inner join @docs d
on tblPage.DocID = d.DocID
只是不要问我为什么:)
答案 1 :(得分:1)
您不应该在JOIN中使用括号。以下似乎工作正常:
create table tblDoc
(
DocID int,
BatchID INT
)
create table tblPage
(
DocID int
)
declare @docs table(
DocID int
)
insert into @docs (DocID)
select DocID
from tblDoc
where tblDoc.BatchID = 1
select *
from tblPage
inner join @docs
on tblPage.DocID = [@docs].DocID