存储过程如下:参数都是VARCHAR值declare @vshpchd varchar(26)
set @vshpchd='云南白药'exec p_exporttb
@sqlstr='select * from openrowset(''sqloledb'',''Trusted_Connection=yes'',''exec khyy.hszy.dbo.pr_getemail'')',
@path='f:\zwmail\',@fname='''@vshpchd''+''.xls''',@sheetname='sss'其中@fname=
后面的总是不对,引号不知道如何加,加在什么地方才对
麻烦把这个语句改正确,并能告诉我这类连接变量和常量的引号和+号如何用?有什么规律没?
set @vshpchd='云南白药'exec p_exporttb
@sqlstr='select * from openrowset(''sqloledb'',''Trusted_Connection=yes'',''exec khyy.hszy.dbo.pr_getemail'')',
@path='f:\zwmail\',@fname='''@vshpchd''+''.xls''',@sheetname='sss'其中@fname=
后面的总是不对,引号不知道如何加,加在什么地方才对
麻烦把这个语句改正确,并能告诉我这类连接变量和常量的引号和+号如何用?有什么规律没?
set @vshpchd='云南白药'exec p_exporttb
@sqlstr='select * from openrowset(''sqloledb'',''Trusted_Connection=yes'',''exec khyy.hszy.dbo.pr_getemail'')',
@path='f:\zwmail\',@fname=@vshpchd+'.xls',@sheetname='sss'--这样?
然后看看具体哪个地方有问题
set @vshpchd='云南白药'declare @fname varchar(1000)
set @fname=@vshpchd+'.xls'
exec p_exporttb
@sqlstr='select * from openrowset(''sqloledb'',''Trusted_Connection=yes'',''exec khyy.hszy.dbo.pr_getemail'')',
@path='f:\zwmail\',@fname=@fname,@sheetname='sss'
set @vshpchd='云南白药'
declare @fname varchar(100)
set @fname+'.xls'exec p_exporttb
@sqlstr='select * from openrowset(''sqloledb'',''Trusted_Connection=yes'',''exec khyy.hszy.dbo.pr_getemail'')',
@path='f:\zwmail\',@fname=@fname,@sheetname='sss'当简单的设置@fname='5.xls'时没问题
当复杂的设置@fname==@vshpchd+datepart(month,dateadd(month,-1,getdate()))+'月'+'.xls'
时,提示
-----------------------------------
服务器: 消息 245,级别 16,状态 1,行 4
将 varchar 值 '云南白药' 转换为数据类型为 int 的列时发生语法错误。奇怪的是,只执行:
declare @vshpchd varchar(26)
set @vshpchd='云南白药'
declare @fname varchar(100)
set @fname=@vshpchd+datepart(month,dateadd(month,-1,getdate()))+'月'+'.xls'
print @fname不执行EXEC程序,也提示这个同样的错误
如何解决?怎么回事?
set @vshpchd='云南白药'
declare @fname varchar(100)
set @fname=@vshpchd+cast(datepart(month,dateadd(month,-1,getdate())) as varchar)+'月'+'.xls'exec p_exporttb
@sqlstr='select * from openrowset(''sqloledb'',''Trusted_Connection=yes'',''exec khyy.hszy.dbo.pr_getemail'')',
@path='f:\zwmail\',@fname=@fname,@sheetname='sss'