仪陇县委书记陈科判决:sql参数的字符串连接

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 15:05:52
说明一下:以下是语句是将c:\cgfp.xls中的数据导入a_icpurchase 表中
insert into a_icpurchase select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=c:\cgfp.xls',[icpurchase$])

上面这条语句是可以正常执行的!但是把它放到存储过程中把EXCEL文件路径换成SQL变量.(下面的语句)就不行了...难道字符连接还有别的特殊用法???迷糊了
提示['+' 附近有语法错误。]
declare @path varchar(110)

insert into a_icpurchase select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE='+@path+'',[icpurchase$])
1楼:太简单的问题了吧..'+@path'和'+@path+''是一样的...
2楼:ASP的兄弟我是在SQL里面用存储过程的变量调用的'&server.path("文件名") '的作用和+@path效果是一样的...
以后楼:各位兄弟们帮忙看看了....拜托了
看来是没有答案了~!正确答案:

declare @path varchar(100),@s varchar(8000)

set @path='D:\test.xls'
set @s=
'select * into a_icpurchase from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES;DATABASE='+@path+''',[icpurchase$])'

select @s
@exec(@s)

insert into a_icpurchase select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE='&server.path("文件名")
注意要保存在同一目录下比较好
否则就要再加东东

这样写试一试怎么样
insert into a_icpurchase select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE='+@path,[icpurchase$])
呵呵 我没有调试!!