java 调用存储过程 不能执行sp_addlinkedserver 着急 着急 着急 着急 着急 !

bukebuhao 2008-12-09 01:16:51
存储过程的代码如下

ALTER PROCEDURE [dbo].[tuc_insertVehile]
AS
BEGIN
delete from VehileTable
if not exists(select 1 from master.dbo.sysservers where srvname = 'srv_lnk')
begin
exec master.dbo.sp_addlinkedserver 'srv_lnk','','SQLOLEDB','192.168.0.218'
exec master.dbo.sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','sa'
end
exec('insert into VehileTable select VehileMark, SIMID from srv_lnk.GPSManager.dbo.VehileTable')
exec master.dbo.sp_dropserver 'srv_lnk','droplogins'
select '' as haha
END


java 代码如下

CallableStatement cstmt = null;
cstmt = db.getConnection().prepareCall("{call dbo.tuc_insertVehile()}");
cstmt.executeQuery();

报错
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer] 'sp_addlinkedserver' 不能执行

高手解答,着急
...全文
223 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bukebuhao 2008-12-09
  • 打赏
  • 举报
回复
供应商' SQLOLEDB '无法开始分散交易,所以请求的操作没有完成。
bukebuhao 2008-12-09
  • 打赏
  • 举报
回复
不是同一个事务不能执行
bukebuhao 2008-12-09
  • 打赏
  • 举报
回复
我测试一下,好象不可的
jinjazz 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bukebuhao 的回复:]
哦,无论怎么样呢?给个方案解决,不一定非用存储过程的,怎么解决?
[/Quote]

打开sqlserver客户端加不就行了
fcuandy 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bukebuhao 的回复:]
哦,无论怎么样呢?给个方案解决,不一定非用存储过程的,怎么解决?
[/Quote]

不是已经给你说过了吗?

自己在服务器上建了链接服务器后,它的设置就贮留在服务器上了,不用每次都去设置。在服务器上建完之后, 把存储过程里的sp_add...这几句去掉。
bukebuhao 2008-12-09
  • 打赏
  • 举报
回复
哦,无论怎么样呢?给个方案解决,不一定非用存储过程的,怎么解决?
jinjazz 2008-12-09
  • 打赏
  • 举报
回复
我也不明白,为什么那么多人喜欢用sp_addlinkedserver

在SqlServer中手工配置一下不就可以了,这种部署性质的玩艺最好不要用程序去干涉。
fcuandy 2008-12-09
  • 打赏
  • 举报
回复
为什么要写在存储过程里给java调呢?

先在服务器上执行sp_addlinkedserver,成功后,链接服务器就贮留在执行sp_addlinkedserver的服务器上了,直接用就是了,何必每次建>?

如果每次都建,用完就删,建议你直接用分布式查询语句,如openrowset之类。
新鲜鱼排 2008-12-09
  • 打赏
  • 举报
回复
exec('insert into VehileTable select VehileMark, SIMID from srv_lnk.GPSManager.dbo.VehileTable')
exec master.dbo.sp_droplinkedsrvlogin 'srv_lnk','sa'
exec master.dbo.sp_dropserver 'srv_lnk','droplogins'
select '' as haha

试一下
yeah920 2008-12-09
  • 打赏
  • 举报
回复
帮忙顶,学习了
hyde100 2008-12-09
  • 打赏
  • 举报
回复
保证java的登录用户有执行 sp_addlinkedserver 的权限
bukebuhao 2008-12-09
  • 打赏
  • 举报
回复
不用程序调用,则可以执行。

22,209

社区成员

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

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