求救:动态执行SQL的问题
表名动态变化 
 其中有一段流程是这样的: 
 1、在表中根据某个条件先判断记录是否存在 
 2、若存在再继续……   
 比如 
 declare   @table   varchar(20) 
 declare   @sql   varchar(200) 
 set   @table= 'test1 ' 
 set   @sql= 'select   *   from    '+@table+ '   where   条件表达式 ' 
 如果是正常情况可以用: 
 if   exists(select   *   from   table   where   条件表达式) 
 来判断记录是否存在 
 可是现在要执行这个动态语句,并判断是否有记录存在,该如何写呢? 
 因为   if   exests(exec(@sql))   是行不通的 
 求大侠指教 
 小弟刚刚接触TSQL编程   
------解决方案--------------------把if exists也放到@sql裏面就可以了
------解决方案--------------------try   
 declare @table varchar(20) 
 declare @sql Nvarchar(200), @rowscount int 
 set @table= 'test1 ' 
 set @sql= 'select @rowscount = Count(*)  from  '+@table+ ' where 条件表达式 ' 
 EXEC sp_executesql @sql, N '@rowscount int Output ',@rowscount Output 
 IF(@rowscount >  0) 
 	...
------解决方案--------------------可以一起动态   
 declare @table varchar(20) 
 --declare @sql varchar(200)   不要变量 
 set @table= 'test1 ' 
 exec( ' 
 if exists(select * from  '+@table+ ' where 条件表达式) 
    begin   
         update  '+@table+ ' set ...  where 条件表达式 
    end 
    else 
         insert  '+@table+ ' ... 
  ')