【发布时间】:2009-07-31 20:58:37
【问题描述】:
我正在尝试使长存储过程更易于管理,是否有一个调用其他存储过程的存储过程是错误的,例如我想要一个将数据插入表的存储过程,具体取决于类型将附加信息插入到该类型的表中,例如:
BEGIN TRANSACTION
INSERT INTO dbo.ITSUsage (
Customer_ID,
[Type],
Source
) VALUES (
@Customer_ID,
@Type,
@Source
)
SET @ID = SCOPE_IDENTITY()
IF @Type = 1
BEGIN
exec usp_Type1_INS @ID, @UsageInfo
END
IF @TYPE = 2
BEGIN
exec usp_Type2_INS @ID, @UsageInfo
END
IF (@@ERROR <> 0)
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
或者这是我应该在我的应用程序中处理的事情?
【问题讨论】:
-
你可能想放弃 @@ERROR 并使用 BEGIN TRY(try catch)和 XACT_STATE()
-
假设这是 2k5 或更高版本...
标签: sql sql-server