在sql server中表名是不能做变量的。你试一下:
Declare @tbname varchar(20)
select @tbname ='一个表的名字'
select * from @tbname 
绝对不行。

解决方案 »

  1.   

    應該可以啊﹐不知道可不可以用動態的SQL語句呢?
      

  2.   

    可以用動態的試試吧。
    exec(@sql)
      

  3.   

    Declare @tbname varchar(20)
    DECLARE @vSql VARCHAR(8000)Declare Mysearch Cursor for select name from sysobjects where type='U'
    open Mysearch
    Fetch First from Mysearch into @tbname
    WHILE (@@FETCH_STATUS = 0)
    begin
       SET @vSql = 'Truncate table ' + @tbname
       EXEC(@vSql)   Fetch Next from Mysearch into @tbname
    end
    Close Myserch
    DEALLOCATE Myserch