急!!!存储过程不能执行!

zzh54zzh 2003-09-23 06:04:02
以下为存储过程:
***********************
ALTER PROCEDURE dbo.furbishDB
@TBName varchar(50),@DS varchar(100),@Uid varchar(50),@Pwd varchar(50),@DN varchar(50)
AS
declare @tempStr varchar(5000)
declare @tmp varchar(5000)
declare @sqlStr varchar(5000)
set @tmp = 'OPENDATASOURCE(''SQLOLEDB'', ''Data Source=' + @DS +';User ID='+ @Uid +';Password=' + @Pwd +''').' + @DN +'.dbo.' + @TBName
set @tempStr = 'delete from ' + @tmp
--select @tempStr
exec @tempStr
set @sqlStr = 'insert into ' + @tmp + ' select * from ' + @TBName
--select @sqlStr
exec @sqlStr
*********************
运行dbo."furbishDB" ( @TBName = hk, @DS = gzy\gzy, @Uid = sa, @Pwd = , @DN = ksy )
**************************
报错信息如下:
delete from OPENDATASOURCE('SQLOLEDB', 'Data Source=gzy\gzy;User ID=sa;Password=').ksy.dbo.hk
在 sysservers 中未能找到服务器 'delete from OPENDATASOURCE('SQLOLEDB', 'Data Source=gzy\gzy;User ID=sa;Password=')'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
(返回 1 行)
@RETURN_VALUE = -1
完成 dbo."furbishDB" 运行。
...全文
29 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzh54zzh 2003-09-26
  • 打赏
  • 举报
回复
试了上面的方法也不行,可能是我没看懂,
不知为什么删除和添加写在同一个存储过程中不能执行,分开写没有问题!
奇怪呀奇怪!
Wally_wu 2003-09-23
  • 打赏
  • 举报
回复
请确保存储过程名是否存在远程数据库里
zzh54zzh 2003-09-23
  • 打赏
  • 举报
回复
为什么我的另一个存储过程没有这种情况,其中也连接了同样的远程数据库。
zzh54zzh 2003-09-23
  • 打赏
  • 举报
回复
是其他人的sql服务
可以连接
“delete from OPENDATASOURCE('SQLOLEDB', 'Data Source=gzy\gzy;User ID=sa;Password=').ksy.dbo.hk ”
这些sql语句在sql server中是可以执行,没有错误。
sdhdy 2003-09-23
  • 打赏
  • 举报
回复
--使用联结服务器
--填加联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
--创建或更新本地 Microsoft? SQL Server? 实例上的登录与链接服务器上远程登录之间的映射。
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go


--主键重复的时候这样
insert 库名.dbo.表名
select * from 别名.库名.dbo.表名 where id not in (select id from 库名.dbo.表名)
yujohny 2003-09-23
  • 打赏
  • 举报
回复
在 sysservers 中未能找到服务器 'delete from OPENDATASOURCE('SQLOLEDB', 'Data Source=gzy\gzy;User ID=sa;Password=')'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。

这个错误不是说很清楚了,可能你都联不上服务器,你用企业管理器先注册这个服务器看看
txlicenhe 2003-09-23
  • 打赏
  • 举报
回复
gzy\gzy是什么?
放在哪里的?
zzh54zzh 2003-09-23
  • 打赏
  • 举报
回复
这是什么问题?
如何解决?

34,594

社区成员

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

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