我想传一个条件进去 然后选出付合这个条有多少行 下面在用这个变量我先是这样写的.有问题declare @total intexec(N'select @tatal=count(*) from tb where 1=1 '+@condition)--这下面还想用@total
怎么实现这种情况

解决方案 »

  1.   

    declare @total intexec SP_ExecuteSQL N'select @tatal=count(*) from tb where 1=1 '+@condition,N'@total int output',@total output
    select @total
      

  2.   


    declare @total int
    sp_executesql N'select @total=count(*) from [order]',N'@total int output',@total output
    select @total消息 102,级别 15,状态 1,第 2 行
    'sp_executesql' 附近有语法错误。
    消息 137,级别 15,状态 2,第 3 行
    必须声明标量变量 "@total"。
      

  3.   

    declare @total int,@SQL NVARCHAR(4000),@condition NVARCHAR(50)
    SET @condition='WHERE NAME=''A'''
    SET @SQL= N'select @tatal=count(*) from tb where 1=1 '+@condition;
    exec SP_ExecuteSQL @SQL,N'@total int output',@total output
    select @total
      

  4.   

    是不是我sql版本有问题 我在系统存储过程里找不到sp_executesql 但是颜色还是变了的.
      

  5.   

    declare @total int
    EXEC sp_executesql N'select @total=count(*) from [order]',N'@total int output',@total output
    select @total人家都写了EXEC,你不复制过去?