关于
SQL
语句参数中为多个带
','
的字符串
原本是这样
,
参数有
date,@didian
insert
into
hp(
个人编号
,
身份证号
,
姓名
,
性别
,
民族
,
出生日期
,
工作日期
,
养老参保状态
,
养老缴费基数
,
失业参保状态
,
失业缴费基数
,
医疗参保状态
,
医疗缴费基数
,
工伤参保状态
,
工伤缴费基数
,
生育参保状态
,
生育缴费基数
,
时间
,
地点
)
select
rtrim(ltrim(str(
个人编号
)
))
,
身份证号
,
姓名
,
性别
,
民族
,
出生日期
,
工作日期
,
养老参
保状态
,
养老缴费基数
,
失业参保状态
,
失业缴费基数
,
医疗参保状态
,
医疗缴费基数
,
工伤参保状态
,
工伤缴费基数
,
生育参保状态
,
生育缴费基数
,@date,@didian
from
openrowset
(
'Microsoft.Jet.OLEDB.4.0',
'Excel
8.0;Database=D:\
公司共享文件
\@
人力资源管理软件数据导入
\
回盘信息
\
沙坪坝
回盘
3.6.xls',
'select
*
from
[sheet1$]'
)
但是由于文件名是不一定的,
也就是沙坪坝回盘
3.6
是变动的,
我在存储过程里再加了个参
数,指定文件名。设置为
@wenjian,
即多了一个参数,这样就要把整段话作为一个字符串来
用
exec(sql)
执行
但是这个拼接真心不会,类似下面这样
declare
@sql
varchar(2000)
set
@sql
=
'
insert
into
hp(
个人编号
,
身份证号
,
姓名
,
性别
,
民族
,
出生日期
,
工作日期
,
养老参保状态
,
养老缴费基数
,
失业参保状态
,
失业缴费基数
,
医疗参保状态
,
医疗缴费基数
,
工伤参保状态
,
工伤缴费基数
,
生育参保状态
,
生育缴费基数
,
时间
,
地点
)
select
rtrim(ltrim(str(
个人编号
)
))
,
身份证号
,
姓名
,
性别
,
民族
,
出生日期
,
工作日期
,
养老参
保状态
,
养老缴费基数
,
失业参保状态
,
失业缴费基数
,
医疗参保状态
,
医疗缴费基数
,
工伤参保状态
,
工伤缴费基数
,
生育参保状态
,
生育缴费基数
,@date,@didian
from
openrowset
(
'Microsoft.Jet.OLEDB.4.0',
'Excel
8.0;Database=D:\
公司共享文件
\@
人力资源管理软件数据导入
\
回盘信息
\
沙坪坝
回盘
3.6.xls',
'select
*
from
[sheet1$]'
)'
SQL
语句拼接中
单撇要变成双撇
双撇要变成四撇