create proc 名
@aa varchar(100)
as
exec('select '+@aa)

解决方案 »

  1.   

    create  proc 名
    @aa varchar(100)
    as
    exec('select '+@aa)
    ---调用
    exec 名 '(9+2)*2'
      

  2.   

    create  proc up
    @aa varchar(100)
    as
    exec('select '+@aa)
    go
    --exec up '(9+2)*2'
      

  3.   

    create proc 名
    @aa nvarchar(4000),
    @bb int output
    as
    set @aa=N'set @cc='+@aa
    exec sp_executesql @aa,N'@cc int output',@bb output
    declare @a int
    exec 名 '(9+2)*2',@a output
    select @a
      

  4.   

    --------如果你要用输出参数:
    create proc 名
    @aa nvarchar(4000),
    @bb int output
    as
    set @aa=N'set @cc='+@aa
    exec sp_executesql @aa,N'@cc int output',@bb output--------调用:
    declare @a int
    exec 名 '(9+2)*2',@a output
    select @a
      

  5.   

    其实相当于在查询分析器中执行
    select (9+2)*2  
    结果等于 22
    exec(字符串) 执行字符串指定的sql语句
    'select '+@aa就是在构造字符串sql语句
      

  6.   

    我不是写了吗?????--------如果你要用输出参数:
    create proc 名
    @aa nvarchar(4000),
    @bb int output
    as
    set @aa=N'set @cc='+@aa
    exec sp_executesql @aa,N'@cc int output',@bb output--------调用:
    declare @a int
    exec 名 '(9+2)*2',@a output
    select @a