我想判断一个查询语句有没有返回记录,以执行下一步操作,用:
IF EXISTS(EXEC(@SQL)) 
BEGIN
......
END
提示我语法错误,请问是怎么回事?应该如何改才能实现我要的功能?注:其中, @SQL 是一个动态SQL语句.

解决方案 »

  1.   

    EXEC(@SQL)
    IF EXISTS(@@rowcount>0)
    BEGIN
    ......
    END
      

  2.   

    declare @SQL varchar(20)
    set @SQL='select getdate()'
    declare @T table (cc varchar(20))
    insert into @T
    EXEC (@SQL)
    IF EXISTS( select 1 From @T)  
    BEGIN
     select 1
    END
      

  3.   


    EXEC(@SQL)
    IF @@rowcount>0
    begin
    end
      

  4.   

    先谢谢各位,现在又有另外一个问题:
    我的EXEC(@SQL)是有结果集的,把它放到循环里的话,查询出很多块结果集,很快就内存溢出了,有好的解决办法吗?
      

  5.   


    declare @sql nvarchar(100),@I int
    set @sql = 'select @i =count(1) from ta'
    exec sp_executesql @sql,N'@i int out',@i out
    IF  (@i>0)
    BEGIN
        print @I
    END
      

  6.   

    declare @t table(xxx);
    insert into @t exec(@sql);
    if exists(select * from @t)