存储过程见到鬼了(10分)

N

nzfsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
执行insert into A select * from B。我可以在A中看到4条记录被添加。
如果我改成存储过程。却无法成功。为什么?
存储过程如下:
create procedure ABC
AS
insert into A select * from B
GO
 
我是用SQL SERVER 2000
 
大家讲一下,为什么不能成功呀?
 
应该没有问题呀!
创建完过程后有无运行该过程?或者在过程的insert语句后增加一条commit语句。
 
没有bing trans为何要加commit语句呢?
 
有什么错误提示?
 
a ,b 字段個數 類型要匹配
 
对,你具体说明到底提示什么?
 
没提示,就是没有结果。
但只执行SQL语句。就有4个记录成功移动。
一用存储过程就一点反映都没有。
 
sql server不很熟悉。我主用oracle。
oracle中在用过程对数据库进行操作时,可以定义例外处理模块,捕获出错信息。
但是从你的做法来看,应该没有出错信息才对。
确认你的过程创建是正确的。还有,你是在什么地方调用过程的?
象这么简单的过程,不会有语句上的错误。
对比检测!
1.确认可以用sql语句进行记录移动
2.确认过程创建无误
3.确认过程在数据库集成环境中可以实现预期功能
4.确认调用过程的方式无误
 
我的SQL语句肯定没有问题。我试过了。
不过,这样的语句,在别人的机器中试了没有问题。
我的机器是不是系统配置上有问题?
 
你在过程中加上commit试试
 
兄弟,没有一事务的开始,怎么可以用一个事务的完成呢?
 
代码:
不知道大家有没有发现存储过程的组件老有问题
用这个试试,
var
Query:TADOQuery;
begin
  Query:=TADOQuery.Create(nil);
  Query.Connection:=AdoConnection1;
  Query.Sql.Add('begin');
  Query.Sql.Add('  insert into A select * from B;');
  Query.Sql.add('end;');
  try
    Query.ExecSQL ;
  except
    showMessage('Err');
  end;
  Query.Free;
end;
 
是的,老出问题,重新拉个新的试试。
 
存儲過程沒有問題﹗﹗﹗是不是你在Delphi中調用時出現問題﹖
 
同意hgood的观点.仔细检查一下你的调用过程。
 
调用过程存在问题,建议详细检查源代码
 
试试
insert into a(select * from b)

select * into b from a
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
顶部