日期:2014-05-18  浏览次数:20602 次

问个赋值的问题?
第一个问题?
declare   @RecordCount   int
select   @RecordCount=count(perid)   from   person

本来的语句如上
但是后面那个判断比较复杂,是查询的,用了动态的sql语句,然后这句话该怎么写?
exec( 'select   @RecordCount=count(perid)   from '+@sql)
这样写提示变量@recordCount未声明?我该怎么把查询出来的结果count(perid)赋给@RecordCount,麻烦大家帮忙啦,谢谢

第二个问题?
三个表连在一起进行查询,怎么样写效率更高?我现在用的是动态sql,因为条件太多,我把连接的语句写在下面(大家不要笑,我是菜鸟),要改成怎样,效率会更高:
select   *
from  
person
full   join   personjob   on   personjob.perid=person.perid
full   join   person_info   on   person_info.perid=personjob.perid

没办法,分少而且发了两个问题,请大家帮帮忙

------解决方案--------------------
declare @RecordCount int,@sql nvarchar(1000)
set @sql=N 'select @RecordCount=count(perid) from '+@sql
exec sp_executesql @sql,N 'RecordCount int output ',RecordCount
select RecordCount