看看我的存储过程应该怎么写啊?????

whereisthedog 2006-12-23 02:13:32
我想从外部参数制定路径 和文件名 可是通不过!!!

create procedure do_insert
@path varchar(255),
@filename varchar(255)
as
begin
insert into depth(depth,truestation,layerid,stations)
select f7,f4,134,'K'+ltrim(str(CAST(f4/1000 as int)))+
'+'
+ltrim(str(cast(f4 as int) % 1000))
/*from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;HDR=no;DATABASE=D:\rptool\rptool\;', 'select * from radan#txt') */
from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;HDR=no;DATABASE='+@path+';', 'select * from '+@filename+'#txt')
where f7>0;
end



服务器: 消息 170,级别 15,状态 1,过程 do_insert,行 11
第 11 行: '+' 附近有语法错误。
...全文
103 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
whereisthedog 2006-12-23
  • 打赏
  • 举报
回复
服务器: 消息 7399,级别 16,状态 1,过程 do_insert,行 6
OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。
[OLE/DB provider returned message: ''+@path+''不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。]
caixia615 2006-12-23
  • 打赏
  • 举报
回复
create procedure do_insert
@path varchar(255),
@filename varchar(255)
as
begin
insert into depth(depth,truestation,layerid,stations)
select f7,f4,134,'K'+ltrim(str(CAST(f4/1000 as int)))+
'+'
+ltrim(str(cast(f4 as int) % 1000))
/*from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;HDR=no;DATABASE=D:\rptool\rptool\;', 'select * from radan#txt') */
from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;HDR=no;DATABASE=''+@path+'';', 'select * from ''+@filename+''#txt')
where f7>0;
end

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧