读书人

存储过程怎么动态指定列

发布时间: 2012-02-13 17:20:26 作者: rapoo

存储过程如何动态指定列?
比如我有1张表wq_fjd_fx_3_temp_1,表中有很多数字列(比如1日数量,2日数量,3日数量。。。。),前台可以选中其中一列进行分析,我想把选中的一列写入到一个新表中,这个动态列如何引用?
(下面这个@zd1,我写的但不对,执行完是文本,不是原来的其中一列,请问各位大虾如何解决? )

CREATE PROCEDURE sp_wq_fjd_fx_3_list_mx(zd1 varchar(50))
AS
begin

if object_id('dbo.wq_fjd_fx_3_list_mx') is not null
drop table dbo.wq_fjd_fx_3_list_mx


create table dbo.wq_fjd_fx_3_list_mx(sm varchar(50),th varchar(50),dhh varchar(50),rq varchar(10),sl varchar(10))
insert dbo.wq_fjd_fx_3_list_mx
select '表一',dl_th,dhh,@zd1 from dr.dbo.wq_fjd_fx_3_temp_1;

end
go

[解决办法]
SQL Server 吗? 试一下:
在create table dbo.wq_fjd_fx_3_list_mx...... 后这么写:

declare @sql nvarchar(8000)
declare @fields varchar(32)

set @fields = '指定字段'
select @sql = 'insert dbo.wq_fjd_fx_3_list_mx select ....' + @fields + '..., from dr.dbo.wq_fjd_fx_3_temp_1 where ....'

EXEC sp_executesql @sql

select * from wq_fjd_fx_3_list_mx

读书人网 >PB

热点推荐