create proc test
       @tabname
as
       select * from @tabname
为什么上面的写法不可以,它说@tabname不是表变量,
如果我想实现别人传一个表名进来,返回结果集该怎么办???

解决方案 »

  1.   

    再补充一个问题,再sql中有一个表名book,book表有一个字段booktime,类型是datetime类型
    这个时候,我在java程序这边通过反射分别得到这个表里面的一行行数据,可是为什么在反射时,
    得到datetime类型数据后,出错了呢?我的java程序这边有一个对应的类Book,Bool类的booktime
    属性的类型是java.sql.date,      补充:java.util.date也不可以,但是当把datetime类型都改为字符串反射就成功了,
    难道对于表有datetime类型的就不能用反射来取值了吗
      

  2.   

    create proc test
      @tabname nvarchar(100)
    as
      exec('select * from '+@tabname)
      

  3.   


    declare @tableName nvarchar(50), @sql nvarchar(1000)
    set @tableName='student'
    set @sql='select * from '+@tableName
    exec (@sql)
    print (@sql)