SQL语法问题

lirong 2011-04-08 08:18:36
declare @fname varchar (200)


set @fname='11.dbf'
insert into
openrowset('MICROSOFT.JET.OLEDB.4.0'
,'dBase 5.0;DATABASE=d:\','select * from [aa.dbf]')
select a.ArchID,PostTime,DispNum from openrowset('SQLOLEDB' , '192.168.0.201' ;
'sa' ; 'sa8899' ,WSMS_Beta_Demo.dbo.HouseArch ) a,
openrowset('SQLOLEDB' , '192.168.0.201' ;
'sa' ; 'sa8899' ,WSMS_Beta_Demo.dbo.HouseData )b
where a.UserJoinID=b.UserJoinID
and year(PostTime)=year(Getdate()) and month(PostTime)=month(Getdate()) and day(PostTime)=day(Getdate())


我想把aa.dbf用变量传进去,,这语法要怎么写啊。

按我下面的写说语法出错,提示 '+' 附近有语法错误。
insert into
openrowset('MICROSOFT.JET.OLEDB.4.0'
,'dBase 5.0;DATABASE=d:\','select * from ['+@fname+']')
select a.ArchID,PostTime,DispNum from openrowset('SQLOLEDB' , '192.168.0.201' ;
'sa' ; 'sa8899' ,WSMS_Beta_Demo.dbo.HouseArch ) a,
openrowset('SQLOLEDB' , '192.168.0.201' ;
'sa' ; 'sa8899' ,WSMS_Beta_Demo.dbo.HouseData )b
where a.UserJoinID=b.UserJoinID
and year(PostTime)=year(Getdate()) and month(PostTime)=month(Getdate()) and day(PostTime)=day(Getdate())
...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cs_lb 2011-04-08
  • 打赏
  • 举报
回复

declare @fname varchar (200)


set @fname='11.dbf'

exec
(
'insert into
openrowset(''MICROSOFT.JET.OLEDB.4.0''
,''dBase 5.0;DATABASE=d:\'',''select * from ['+@fname+']'')
select a.ArchID,PostTime,DispNum from openrowset(''SQLOLEDB'' , ''192.168.0.201'' ;
''sa'' ; ''sa8899'' ,WSMS_Beta_Demo.dbo.HouseArch ) a,
openrowset(''SQLOLEDB'' , ''192.168.0.201'' ;
''sa'' ; ''sa8899'' ,WSMS_Beta_Demo.dbo.HouseData )b
where a.UserJoinID=b.UserJoinID
and year(PostTime)=year(Getdate()) and month(PostTime)=month(Getdate()) and day(PostTime)=day(Getdate())'
)
lirong 2011-04-08
  • 打赏
  • 举报
回复
那具体怎么弄呢?
幸运的意外 2011-04-08
  • 打赏
  • 举报
回复
把整个SQL处理成一个字符串,然后用exec语句执行。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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