像下面这个语句,如果hb168_message30是一个变量的话,那么个SQL字符串语句(@STR)应该怎么写呢?select @v_count = count(*) from hb168_message30 where id <= @v_currentid;@str=?

解决方案 »

  1.   

    declare @v_count int, @str nvarchar(4000), @TableName Varchar(10), @v_currentid Int
    Select @TableName = 'hb168_message30', @v_currentid = 1
    set @str='select @v_count=count(*) from '+ @TableName + ' where id <= ' + Rtrim(@v_currentid)
    exec sp_executesql @str,N'@v_count int output',@v_count output 
    select @v_count
      

  2.   

    declare @str nvarchar(1000),@tname nvarchar(40),@v_count int,@v_currentid int
    set @v_currentid=1000
    set @tname='hb168_message30'set @str='select @v_count = count(*) from '+@tname+' where id<=@v_currentid'exec sp_executesql @str,
                       N'@v_count int output,@v_currentid int',
                       @v_count output ,@v_currentidselect @v_count
      

  3.   

    create table hb168_message30(id int)
    insert into hb168_message30
    select 1declare @tablename varchar(20)
    set @tablename='hb168_message30'
    declare @sql nvarchar(1000)
    declare @v_currentid int
    declare @v_count int
    set @v_currentid=1
    set @sql='select @v_count = count(*) from '+@tablename+' where id <= '+rtrim(@v_currentid)
    --print @sql
    exec sp_executesql @sql,N'@v_count int output',@v_count output
    print @v_count
      

  4.   

    这里已经写出来了啊??!!
    http://community.csdn.net/Expert/topic/5408/5408731.xml?temp=.5944025