0

我能够在下面的 SQL Server 2008 R2 中创建存储过程,但现在我遇到了障碍,因为我需要以一种存储过程将使用事务并检查插入语句中的错误的方式来执行此操作。发现错误时 - 事务应回滚并且不应提交任何内容。任何帮助,将不胜感激。

使用 Northwind GO CREATE PROC spEmployee @EmployeeID int AS SELECT * FROM employees WHERE EmployeeID=''+@EmployeeID+'' GO EXEC spEmployee @EmployeeID=2 GO


CREATE PROC spEmployee @EmployeeID int

开始交易

SELECT * FROM employees WHERE EmployeeID=''+@EmployeeID+''

GO EXEC spEmployee @EmployeeID=2

如果@@ERROR <> 0 则执行

开始

回滚

RAISERROR ('EXECUTE 之后的事务计数表示 BEGIN 和 COMMIT 语句的数量不匹配。先前计数 = 1,当前计数 = 2。', 16, 2)

返回

结尾

犯罪

4

1 回答 1

0

首先阅读 SQL2005 以上的 try catch 块。您在此处使用 SQL 2000 错误处理。SQL 在线书籍对于您需要的信息非常有用。

于 2012-04-18T17:07:30.270 回答