動態SQL中,table名字可用變量來表示。

解决方案 »

  1.   

    declare @TableName varchar(50)
    set @TableName='MyTable'
    exec('select * from '+@TableName)
      

  2.   

    这种用法很不直接,并且在很多时候达不到目的,
    因为Exec会创建一个新的连接,因此,
    exec('create table #abc(a int)')
    select * from #abc
    这种语句,select * from #abc就无法找到#abc始终想不通
      

  3.   

    我觉得这种特性也不能带来多少方便,SQL Server不能[直接]帮你解决所有问题。很多事情都要靠自己去写代码。
      

  4.   

    citrix(流水) :
    如果你写存储过程的话,这种特性有多方便了
      

  5.   

    warning(爱就爱了) :
    看看:
    服务器: 消息 229,级别 14,状态 5,行 1
    拒绝了对对象 'T_Test'(数据库 'Study',所有者 'dbo')的 SELECT 权限。
    我没有进行权限设置哦。
      

  6.   

    to ylm163net(文秀)
    try below 
    exec('create table ##abc(a int)')
    select * from ##abc
    需要用全局变量的TEMP TABLE
    可以试试通过TRANSACTION的嵌套数来理解。