在写存储过程的时候用到了表变量
如下:declare @tab_sa table (
CD char(8)
,NAME nvarchar(25)
)
但是在别的语句中用这个表变量作为子查询的时候,居然一直不出数据,
很费劲 不知道什么原因 望高人指点啊select a1,a2,a3
from TbA A
where
a2 in (select a2 from @tab_sa)
and a1='11'
如下:declare @tab_sa table (
CD char(8)
,NAME nvarchar(25)
)
但是在别的语句中用这个表变量作为子查询的时候,居然一直不出数据,
很费劲 不知道什么原因 望高人指点啊select a1,a2,a3
from TbA A
where
a2 in (select a2 from @tab_sa)
and a1='11'
ID int IDENTITY(1,1) NOT NULL,
CD char(8)
,NAME nvarchar(25)
primary key(id)
) 或者
create table #tab_sa (
ID int IDENTITY(1,1) NOT NULL,
CD char(8)
,NAME nvarchar(25)
primary key(id)
)
from TbA A
where a2 in (select name from @tab_sa)
and a1='11'
表变量的数据量有多少呢?改成temp table吧,@表量没有统计数据,生成的查询计划会很差。
from TbA A inner join @tab_sa B
on A.a2=B.a2
where A.a1='11'
表变量里面 不会超过50条数据的
TbA 这个表到是有几万条数据