当前位置: 代码迷 >> Sql Server >> 存储过程里边使用
  详细解决方案

存储过程里边使用

热度:25   发布时间:2016-04-24 09:40:09.0
存储过程里面使用
CREATE proc [dbo].[Proc_Dispatch_Sum]
--参数
@salesMan  VARCHAR(50)='',--业务员
as
if object_id('tempdb..#tmp_dispatch') is not null 
drop table #tmp_dispatch

select dKind,cCusCode,cDLCode,dDate,cInvCode,cInvName,iQuantity,iTaxUnitPrice,iSum,
salesMan into #tmp_dispatch from OPENROWSET('SQLOLEDB', '192.168.1.XXX';'sa'; 'XXXXXX.',
'select ''Dis'' as dKind,d.cCusCode,d.cDLCode ,d.dDate ,
ds.cInvCode ,ds.cInvName,
ds.iQuantity ,ds.iTaxUnitPrice ,ds.iSum ,d.cPersonCode as salesMan
FROM t1 d
inner join t2 ds on d.dlid=ds.dlid
WHERE d.cPersonCode=''+str(@salesMan)+'' and d.dDate>=''2014-01-01'' ) 

标红部分,参数如何才能正确传进去,不管我设几个',好像都是错
------解决思路----------------------
最后一个括号,不要放在单引号里面
CREATE proc [dbo].[Proc_Dispatch_Sum]
--参数
@salesMan  VARCHAR(50)='',--业务员
as
if object_id('tempdb..#tmp_dispatch') is not null 
drop table #tmp_dispatch

select dKind,cCusCode,cDLCode,dDate,cInvCode,cInvName,iQuantity,iTaxUnitPrice,iSum,
salesMan into #tmp_dispatch from OPENROWSET('SQLOLEDB', '192.168.1.XXX','sa', 'XXXXXX.','select ''Dis'' as dKind,d.cCusCode,d.cDLCode ,d.dDate ,
ds.cInvCode ,ds.cInvName,ds.iQuantity ,ds.iTaxUnitPrice ,ds.iSum ,d.cPersonCode as salesMan
FROM t1 d
inner join t2 ds on d.dlid=ds.dlid
WHERE d.cPersonCode='''+str(@salesMan)+''' and d.dDate>=''2014-01-01''')
  相关解决方案