日期:2014-05-18  浏览次数:20376 次

存贮过程请教高手
CREATE   PROCEDURE     qd_proaddcl
@cltable1   char(10),
@pzhm1         char(8),
@rq1             char(10),
@pzlb1         char(12),
@shrq1         char(10),
@pjhm1         char(10),
@zdr1           char(8),
@shr1           char(8),
@khhm1         char(8),
@khmc1         char(40),
@zh1             char(8),
@mc1             char(30),
@gg1             char(4),
@dw1             char(6),
@sl1             numeric(12,2),
@dj1             numeric(12,4),
@je1             numeric(12,2),            
@bz1             char(28),
@jsr1           char(8)

as  
DECLARE     @cltable2   char(8)
select     cltable2=@cltable1

insert   into   cltable2  

(pzhm,rq,pzlb,shrq,pjhm,zdr,shr,khhm,khmc,zh,mc,gg,dw,sl,dj,je,bz,jsr)   values   (@pzhm1,@rq1,@pzlb1,@shrq1,@pjhm1,@zdr1,@shr1,@khhm1,@khmc1,@zh1,@mc1,@gg1,@dw1,@sl1,@dj1,@je1,@bz1,@jsr1)
GO

用CLTABLE1传递表名,该怎样写?insert   into   cltable2   不行.

------解决方案--------------------
用動態SQL語句


CREATE PROCEDURE qd_proaddcl
@cltable1 VarVarchar(10),
@pzhm1 Varchar(8),
@rq1 Varchar(10),
@pzlb1 Varchar(12),
@shrq1 Varchar(10),
@pjhm1 Varchar(10),
@zdr1 Varchar(8),
@shr1 Varchar(8),
@khhm1 Varchar(8),
@khmc1 Varchar(40),
@zh1 Varchar(8),
@mc1 Varchar(30),
@gg1 Varchar(4),
@dw1 Varchar(6),
@sl1 numeric(12,2),
@dj1 numeric(12,4),
@je1 numeric(12,2),
@bz1 Varchar(28),
@jsr1 Varchar(8)

as
DECLARE @S Varchar(8000)
Select @S = 'insert into ' + @cltable1 + ' (pzhm,rq,pzlb,shrq,pjhm,zdr,shr,khhm,khmc,zh,mc,gg,dw,sl,dj,je,bz,jsr) values ( ' ' ' + @pzhm1 + ' ' ', ' ' ' + @rq1 + ' ' ', ' ' ' + @pzlb1 + ' ' ', ' ' ' + @shrq1 + ' ' ', ' ' ' + @pjhm1 + ' ' ', ' ' ' + @zdr1 + ' ' ', ' ' ' + @shr1 + ' ' ', ' ' ' + @khhm1 + ' ' ', ' ' ' + @khmc1 + ' ' ', ' ' ' + @zh1 + ' ' ', ' ' ' + @mc1 + ' ' ', ' ' ' + @gg1 + ' ' ', ' ' ' + @dw1 + ' ' ', ' + Cast(@sl1 As Varchar) + ', ' + Cast(@dj1 As Varchar) + ', ' + Cast(@je1 As Varchar) + ', ' ' ' + @bz1 + ' ' ', ' ' ' + @jsr1 + ' ' ') '
EXEC(@S)
GO
------解决方案--------------------
try:

CREATE PROCEDURE qd_proaddcl
@cltable1 char(10),
@pzhm1 char(8),
@rq1 char(10),
@pzlb1 char(12),
@shrq1 char(10),
@pjhm1 char(10),
@zdr1 char(8),
@shr1 char(8),
@khhm1 char(8),
@khmc1 char(40),
@zh1 char(8),
@mc1 char(30)