create view v_users
as
select * 
from users 
declare @string varchar(80) 
set @string=''
select   @string=@string+','+[name]   
from(select [name] from syscolumns where [id]=object_id('test') and [name] not in ('upassword')) 
 f set @string='select'+stuff(@string,1,1,'')+'from users'   
exec(@string)为什么的提示declare附近有错误?应该怎样修改?

解决方案 »

  1.   

    如果在查询分析器,加上go
    如果不是,将其分两次执行,一次一段
    create   view   v_users 
    as 
    select   *   
    from   users  
    go 
    declare   @string   varchar(80)   
    set   @string= ' ' 
    select       @string=@string+ ', '+[name]       
    from(select   [name]   from   syscolumns   where   [id]=object_id( 'test ')   and   [name]   not   in   ( 'upassword '))   
      f   set   @string= 'select '+stuff(@string,1,1, ' ')+ 'from   users '       
    exec(@string)