我有五个表a1,a2,a3,a4,a5经过循环可能会剩下5-n个表,比如剩下a1,a3,a5,请问如何随机选择其中一个表

解决方案 »

  1.   

    declare @tbnumber int
    declare @tbname varchar(10)
    declare @str varchar(1000)
    select @tbnumber=convert(int,ceiling(rand()*5))
    set @tbname='a'+convert(varchar(10),@tbnumber)
    set @str=N'select * from '+@tbname
    exec sp_executesql @str
      

  2.   

    消息 214,级别 16,状态 2,过程 sp_executesql,第 1 行
    过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
      

  3.   

    declare @tbnumber int
    declare @tbname varchar(10)---------declare @tbname nvarchar(10)
    declare @str varchar(1000)---------declare @str nvarchar(1000)
    select @tbnumber=convert(int,ceiling(rand()*5))
    set @tbname='a'+convert(varchar(10),@tbnumber)
    set @str=N'select * from '+@tbname
    exec sp_executesql @str上面对应修改即可``