我动态生成了一个sql语句,如何用exists函数来判断是否有返回的行?例如:     declare @strSql varchar(3000), @sign int       set @strSql = 'select 1 from tablename'     如何使用 :       if exists(@strSql)
          set @sign = 1
       else 
          set @sign = 0
    上面红色部分如何实现,请高手帮忙!

解决方案 »

  1.   


    declare @strSql nvarchar(3000)
    declare @sign int   
    set @strSql = N'select @sign = count(*) from tablename'
    exec sp_executesql @strSql,'@sign int output',@sign output
    if @sign > 0
    set @sign = 1
    else
    set @sign = 0
      

  2.   

    declare @strSql varchar(3000), @sign int  set @strSql = 'select top 1 1 from tablename'
    EXEC(@strSql)
    if @@rowcount>0
    set @sign = 1
    else
    set @sign = 0
      

  3.   

    declare @strSql varchar(3000), @sign int  DECLARE @t TABLE(ID int)
      set @strSql = 'if exists(select 1 from tablename) select 1'
      INSERT INTO  @t EXEC(@strSql)
    SET @sign=ISNULL((SELECT ID FROM @t),0)
    SELECT @sign