存储过程如何动态指定列?
比如我有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