存储过程的错误处理?

fangss 2003-03-13 04:51:53
存储过程的错误处理
如何获得出错信息?
谢谢!

另外,(此题如有确实方法,另外加分,以示感谢)
在两个数据库中可以用存储过程导数据吗?
这样一来,程序就不用连接两个数据库了.
注意不是用import,而是程序中要调用的
...全文
43 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangss 2003-03-14
  • 打赏
  • 举报
回复
另外的数据库如果不是sqlserver呢?
fangss 2003-03-14
  • 打赏
  • 举报
回复
这种用法似乎很麻烦呀 ,都定死了
select * from server.database.dbo.tablename
fangss 2003-03-14
  • 打赏
  • 举报
回复
是这样的,我们有两个小软件,用户硬要集成在一起使用,
比如一边创建用户,另一边也要自动加上(结构并不完全相同).是两个sql的数据库.
我们只好建立不同的连接,两边做操作.
leimin 2003-03-14
  • 打赏
  • 举报
回复
在两个数据库中可以用存储过程导数据吗?
这样一来,程序就不用连接两个数据库了.
注意不是用import,而是程序中要调用的
??
不是很明白,最好详细一点!

不过如果你要访问其它DATABASE,可以通过SP_ADDLINKEDSERVER来实现。
leimin 2003-03-14
  • 打赏
  • 举报
回复
SQL SERVER存储过程的错误处理一般有2种方法
1.直接通过RETURN @RC来判断,前台的APP可以通过RETURNCODE获得返回值。
SELECT @RC=@@ERROR
IF @RC<>0
BEGIN
SELECT @RC=-1000
RETURN @RC
END
2.通过RAISERROR(),将事件ERROR MESSAGE记录到SYSTEM EVENT VIEWER(EVENTID 最好大于50000)
IF (@@JOB_ID = 1) and (@@EMP_lVl <> 10)
BEGIN
RAISERROR ('Job id 1 expects the default level of 10.', 50001, 1)
ROLLBACK TRANSACTION
END

caiyunxia 2003-03-13
  • 打赏
  • 举报
回复
程序本来就不用连两个数据库

select * from server.database.dbo.tablename
caiyunxia 2003-03-13
  • 打赏
  • 举报
回复
begin transaction
......
if @@error<> 0 goto QuitWithRollback

.....
if @@error<>0 goto QuitWithRollback
commit transaction
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO
sunnyl00 2003-03-13
  • 打赏
  • 举报
回复
程序本来就不用连两个数据库,一个连接就可以,数据可以跨数据库访问的。
ben988211 2003-03-13
  • 打赏
  • 举报
回复
参照 联机帮助
@@ERROR

22,209

社区成员

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

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