问题描述
- SQL @list临时变量 ,报错信息必须定义变量
-
declare @list table
(
Id int,
Name navarchar(12)
)insert into @list
select * from tableAselect * from @list --到这步都是OK的,能得到@list中的数据
--下面我想把@list与tableB表联接起来做查询
select * from @list,tableB
where @list.id = tableB.id结果报错了,提示上面where语句中的@list有问题:Must declare the scalar variable "@list".
这是为什么呢?我不是已经都定义了吗?
解决方案
@list 加个别名就可以了,我试过可以了
declare @list table
(
Id int,
Name navarchar(12)
)
insert into @list
select * from tableA
select * from @list --到这步都是OK的,能得到@list中的数据
--下面我想把@list与tableB表联接起来做查询
select * from @list A,tableB
where A.id = tableB.id
解决方案二:
你的是什么 数据库?
解决方案三:
@list是临时表变量,不是临时表,是放在内存中的。所以这么无法直接和物理表联表
改成
select * from (select * from @list) a,tableB
where a.id = tableB.id
解决方案四:
@list 加个别名就可以了,我试过可以了
declare @list table
(
Id int,
Name navarchar(12)
)
insert into @list
select * from tableA
select * from @list --到这步都是OK的,能得到@list中的数据
--下面我想把@list与tableB表联接起来做查询
select * from @list A,tableB
where A.id = tableB.id