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
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
刚回来,不好意思写错了。exec('')里面不能用函数。
别的值可传,可就是datatime和要用''的字符串传不进去啊
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函數。
rtrim这个是干什么用的啊?
还有.怎么把存储过程里的文字放大点啊,好小的说,只能设8 和9
@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
@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
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函數。
datetime 值是我从表里复制出来的,getdate()的值