求教,路过的大哥大姐帮忙看看。

cmy3918 2006-07-06 04:36:10
如下
...全文
237 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmy3918 2006-07-07
  • 打赏
  • 举报
回复
问题解决了,是建连接时所使用用户的权限问题,换成SA问题解决。
cmy3918 2006-07-07
  • 打赏
  • 举报
回复
TO: foxyz(如风)
你的方法我也试了还是一样。
TO:pbsql(风云)
我不太明白你的意思,能说的具体一点么?谢谢了。
Yang_ 2006-07-07
  • 打赏
  • 举报
回复
能不能用了先?
pbsql 2006-07-07
  • 打赏
  • 举报
回复
存储过程本身没有错,估计是你调用错了
donwmufromdying 2006-07-07
  • 打赏
  • 举报
回复
搂主你看这样写行不行!

Declare cur cursor for --scroll去掉,只让cur用next
Select sCard_c from kcard
Open cur

Fetch next from cur into @sCard_c --简单点
While (@@Fetch_Status=0)
begin
-- print @sCard_c
-- delete from srv_lnk.a.dbo.[kcard] where sCard_c=@sCard_c
改成delete from srv_lnk..kcard where sCard_c=@sCard_c

--select @sCardtype_c=scardtype_c from srv_lnk.a.dbo.[kcard] where Card_c=@sCard_c
Fetch next from cur into @sCard_c
End
Close cur
Deallocate cur
end

如果删除仍然不正确,请检查你是否权限不够,生成的是read_only游标
可以用sp_cursor_list检查一下你生成游标的状态
cmy3918 2006-07-07
  • 打赏
  • 举报
回复
TO:WangZWang(先来)
游标的方式应该没有问题,我都测试过了,
换成你说的那种方式也是不行,还是在删除时停止了。
cmy3918 2006-07-07
  • 打赏
  • 举报
回复
TO:Yang_(扬帆破浪)
能说的再详细点么?我不太理解为什么要这么写呢。
WangZWang 2006-07-07
  • 打赏
  • 举报
回复
--如果要遍历游标的所有项的正确写法,游标操作改为如下语句:
Fetch next from cur into @sCard_c
While (@@Fetch_Status=0)
begin
-- print @sCard_c
delete from srv_lnk.a.dbo.[kcard] where sCard_c=@sCard_c
--select @sCardtype_c=scardtype_c from srv_lnk.a.dbo.[kcard] where Card_c=@sCard_c
Fetch next from cur into @sCard_c
End
Close cur
Deallocate cur
Yang_ 2006-07-07
  • 打赏
  • 举报
回复
delete from srv_lnk.a.dbo.[kcard] where sCard_c=@sCard_c
-->

delete x from srv_lnk.a.dbo.[kcard] x where sCard_c=@sCard_c

用别名

cmy3918 2006-07-07
  • 打赏
  • 举报
回复
兄弟们帮个忙啊。我实在是不知道怎么搞了。
cmy3918 2006-07-06
  • 打赏
  • 举报
回复
没有删除记录,我用事件探察器看到就是停到这里没有继续运行下去。
liangpei2008 2006-07-06
  • 打赏
  • 举报
回复
就不再继续运行了,不知道是什么原因。
---------------
是出错了?还是没有删除记录?
fcuandy 2006-07-06
  • 打赏
  • 举报
回复
等到黄花菜都凉了,终于..





等到了

















































等到下班了。
cmy3918 2006-07-06
  • 打赏
  • 举报
回复
不好意思啊 各位
刚刚网不通了没发出去.
cmy3918 2006-07-06
  • 打赏
  • 举报
回复
ALTER PROCEDURE p_VPNTranData
@sDBName varchar(50),@sDBUser varchar(20),@sDBPass as varchar(20),@sBS as Varchar(3),@sShopName as varchar(50)
AS
--%%%%%%%%%%%%%%%%%%%%%%%%%%生成连接%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if exists(select 1 from master..sysservers where srvname='srv_lnk')
exec sp_dropserver 'srv_lnk','droplogins'

exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB',@sDBName
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,@sDBUser,@sDBPass
--%%%%%%%%%%%%%%%%%%%%%%%%%%生成连接结束%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
DECLARE @sCard_c as varchar(50)
DECLARE @sCardtype_c as varchar(50)


if @sBS='1'
begin
Declare cur scroll cursor for
Select sCard_c from kcard
Open cur
Fetch first from cur into @sCard_c
While (@@Fetch_Status=0)
begin
-- print @sCard_c
delete from srv_lnk.a.dbo.[kcard] where sCard_c=@sCard_c
--select @sCardtype_c=scardtype_c from srv_lnk.a.dbo.[kcard] where Card_c=@sCard_c
Fetch cur into @sCard_c
End
Close cur
Deallocate cur
end


以上存储过程运行到delete from srv_lnk.a.dbo.[kcard] where sCard_c=@sCard_c
就不再继续运行了,不知道是什么原因。
csdnweii 2006-07-06
  • 打赏
  • 举报
回复
好漂亮的白板啊!哈哈
LouisXIV 2006-07-06
  • 打赏
  • 举报
回复
只看见过RT的,没看见过这样的‘如下’

:)
zlp321002 2006-07-06
  • 打赏
  • 举报
回复
看啥...


接分??



楼主,很幽默,散分贴吧!!!


: )
paoluo 2006-07-06
  • 打赏
  • 举报
回复
??
csdnweii 2006-07-06
  • 打赏
  • 举报
回复
看白版?

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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