create PROCEDURE pro_col
@col char(10)  ----列名
as
exec('select ['+rtrim(@col)+'] from tb')

解决方案 »

  1.   

    说是'rtrim'附近有语法错误!
    rtrim这个是干什么用的啊?
    还有.怎么把存储过程里的文字放大点啊,好小的说,只能设8 和9
      

  2.   

    create PROCEDURE pro_col
    @col char(10)  ----列名
    as
    exec('select ['+rtrim(@col)+'] from tb')--有錯誤,改為如下create PROCEDURE pro_col
    @col char(10)  ----列名
    as
    Begin
    Declare @S Varchar(1000)
    Set @S='select ['+rtrim(@col)+'] from tb'
    exec(@S)
    End
      

  3.   

    eg;create PROCEDURE pro_col
    @col char(10), ----列名
    @ID Int
    as
    Begin
    Declare @S Varchar(1000)
    Set @S='select ['+rtrim(@col)+'] from tb  Where ID ='+Rtrim(ID)
    exec(@S)
    End
      

  4.   

    刚回来,不好意思写错了。exec('')里面不能用函数。
      

  5.   

    别的值可传,可就是datatime和要用''的字符串传不进去啊
      

  6.   


    eg;create PROCEDURE pro_col
    @col char(10), ----列名
    @ID Int,
    @Dt DateTime
    as
    Begin
    Declare @S Varchar(1000)
    Set @S='select ['+rtrim(@col)+'] from tb  Where ID ='+Rtrim(ID) +' And Dt='''+@Dt+''''
    exec(@S)
    End但是不建議這種方式,最好用datediff函數。
      

  7.   

    我多加个'',老说从字符串转换为 datetime 时发生语法错误。
    datetime 值是我从表里复制出来的,getdate()的值