SQL语句语法错误。

summerXJY100 2012-10-30 02:54:15

CREATE proc P_w

@provider varchar(20)

AS
delete from t_backup
insert into t_backup select * from t_copy
delete from t_copy
insert into t_copy(Sender_id) select top 50 Sender_id from opendatasource('sqloledb','server='+@provider+';uid=sa;pwd=;database=KJ07').KJ07.dbo.RegionReport order by Last_report_time desc
select * from t_backup where Sender_id not in (select * from t_copy)
GO



提示"+"号附近有语法错误。
...全文
118 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
luren66 2012-10-30
  • 打赏
  • 举报
回复
create proc P_AAA
@server_ip varchar(50)
as
declare @sql varchar(100)
delete from t_backup
insert into t_backup select * from t_copy
delete from t_copy
set @sql = 'insert into t_copy(Sender_id) select top 5 * from opendatasource(''SQLOLEDB'', ''server='+@server_ip+';uid=sa;pwd=;database=KJ07'').KJ07.dbo.RegionReport order by Last_report_time desc'
exec(@sql)
select * from t_backup where Sender_id not in (select * from t_copy)
go
alan817 2012-10-30
  • 打赏
  • 举报
回复
set @sql = 'select top 5 * from opendatasource(''SQLOLEDB'', ''server='+@server_ip+';uid=sa;pwd=;database=KJ07'').KJ07.dbo.RegionReport order by Last_report_time desc'
exec(@sql)
summerXJY100 2012-10-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
把 ‘server=’+@p... 写到外面看
set @s ='server='+@p...

opendatasource('..', @s)
[/Quote]

改成下面的貌似还是不行

create proc P_AAA

@server_ip varchar(50),
@s varchar(100)

as

delete from t_backup
insert into t_backup select * from t_copy
delete from t_copy
set @s = 'server='+@server_ip+';uid=sa;pwd=;database=KJ07'
insert into t_copy(Sender_id) select top 5 Sender_id from opendatasource('sqloledb',@s).KJ07.dbo.RegionReport order by Last_report_time desc
select * from t_backup where Sender_id not in (select * from t_copy)

go
CoolKin9 2012-10-30
  • 打赏
  • 举报
回复
select * from t_backup where Sender_id not in (select * from t_copy)
中Sender_id 与(select * from t_copy)中的*不匹配。
应该写作:
select * from t_backup where Sender_id not in (select Sender_id from t_copy)
wuyq11 2012-10-30
  • 打赏
  • 举报
回复
insert into t_copy(Sender_id) select top 50 Sender_id from opendatasource('sqloledb','Data Source='+@provider+';uid=sa;pwd=;’).KJ07.dbo.RegionReport order by Last_report_time desc
看看
alan817 2012-10-30
  • 打赏
  • 举报
回复
把 ‘server=’+@p... 写到外面看
set @s ='server='+@p...

opendatasource('..', @s)

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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