当前位置: 代码迷 >> Sql Server >> 存储过程中的表名怎么用变量代替
  详细解决方案

存储过程中的表名怎么用变量代替

热度:49   发布时间:2016-04-27 15:05:26.0
存储过程中的表名如何用变量代替
SQL code
--降序排列  Date 开始时间 ,timeat 当前时间CREATE procedure Data_Gps_asc@Date varchar(255),@termid varchar(255), @timeat varchar(255)as select termid,timeat,longitude,latitude from SYSTEM_DATA_GPS_330382000001001_201112  where timeat > @Date  and termid = @termid and timeat<=  @timeat  order by timeat descGO



像这里的SYSTEM_DATA_GPS_330382000001001_201112 [email protected] 不好。

------解决方案--------------------
用动态SQL实现,
SQL code
--降序排列  Date 开始时间 ,timeat 当前时间CREATE procedure Data_Gps_asc@Date varchar(255),@termid varchar(255), @timeat varchar(255)asdeclare @tabname varchar(200),@sql varchar(2000)select @tabname='SYSTEM_DATA_GPS_330382000001001_201112'select @sql='select termid,timeat,longitude,latitude from [email protected]    +' where timeat>[email protected]+''' and [email protected]+''' and timeat<='''    [email protected]+''' order by timeat desc 'exec(@sql)GO
------解决方案--------------------
SQL code
CREATE procedure Data_Gps_asc@Date varchar(255),@termid varchar(255), @timeat varchar(255)asdeclare @tabname varchar(200),@sql varchar(2000)select @tabname='SYSTEM_DATA_GPS_330382000001001_201112'select @sql='select termid,timeat,longitude,latitude from [email protected]    +' where timeat>[email protected]+''' and [email protected]+''' and timeat<='''    [email protected]+''' order by timeat desc 'exec(@sql)GO
  相关解决方案