当前位置: 首页 > 知识库问答 >
问题:

如何创建使用事务的存储过程?

冷夜洛
2023-03-14

我能够在下面的SQL Server 2008 R2中创建存储过程,但现在遇到了困难,因为我需要以存储过程将使用事务并检查insert语句中的错误的方式来进行创建。当发现错误时-事务应该回滚,并且不应该提交任何东西。如有任何帮助,我们将不胜感激。

使用Northwind GO CREATE PROC spEmployee@employeeId int作为SELECT*FROM employees WHERE employeeId=“”+“@employeeId+”GO EXEC

创建PROC spEmployee@employeeID

作为开始交易

从EmployeeID=''+@EmployeeID+''的员工中选择*

转到EXEC

如果@@错误<>0

开始

回滚

RAISERROR(“EXECUTE后的Transaction count”表示BEGIN和COMMIT语句的数目不匹配。上一个count=1,当前count=2。“,16,2)

返回

结束

提交

共有1个答案

商佑运
2023-03-14

首先,阅读SQL2005中的try catch块。您在这里使用的是SQL2000错误处理。SQL联机丛书对于您所需的信息将非常有用。

 类似资料:
  • 本文向大家介绍MSSQL事务的存储过程,包括了MSSQL事务的存储过程的使用技巧和注意事项,需要的朋友参考一下 在酒店管理系统开发中,我们会创建房间表和房间类型表(房型表)这两个表,如下图所示: 房型表:RoomType             房间表:Room   首先这两个表的关系:Room是从表,RoomType是主表,两表有主外键关系,RoomType.rTypeId=Room.rType

  • 我正在尝试使用文本文件的内容在MySQL数据库中创建存储过程: 我使用本机查询执行SQL: 但是它在DROP PROCEDURE上得到一个错误我注释了DROP PROCEDURE,然后它在DELIMITER上得到一个错误基本上,它在第一个分号之后的任何一行上都得到一个错误。 似乎JPA hibernate正在解析我的查询并告诉我它有问题,而不是将纯文本传递到MySQL。 sql在MySQL中运行,

  • 问题内容: 我的存储过程的基本结构是 MySQL版本: 5.1.61-0ubuntu0.11.10.1-log 当前,如果“查询2”失败,则提交“查询1”的结果。 如果任何查询失败,如何回滚事务? 问题答案: 看看http://dev.mysql.com/doc/refman/5.0/en/declare- handler.html 基本上,您声明错误处理程序,它将调用回滚

  • MySQL 存储过程是一些 SQL 语句的集合,比如有时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程。 编写存储过程并不是件简单的事情,但是使用存储过程可以简化操作,且减少冗余的操作步骤,同时,还可以减少操作过程中的失误,提高效率,因此应该尽可能的学会使用存储过程。 下面主要介绍如何创建存储过程。 可以使用

  • 为了解决MySql中的问题,即某些语句只允许在我试图创建的存储过程中运行,然后在JdbcTem板提交的sql中删除存储过程。一个简单的例子是(这恰好是在Spring引导中): cript.sql在哪里 在mySql workbench中运行它可以很好地工作,但是由JdbcTemplate提交时会出现错误 据我所知,这是因为JdbcTemplate不允许使用那些

  • 问题内容: 我正在从PHP中读取一个TEXT文件,并试图从中执行命令,例如创建一个DB及其具有的所有表和过程。我的代码创建表,但不创建文件中给定的存储过程。 PDO没有创建SP,那么将如何完成此任务?我尝试一起执行所有代码部分并逐行执行,但没有任何效果。 我正在尝试制作数据库安装程序脚本。 问题答案: 好吧,PMA帮助我回答了我自己的问题。 为了克服这个问题,您需要删除过程的定界符部分,以便查询变