存儲過程嵌套(巢狀調用)是封裝業務邏輯、實現事務原子性的常用模式。示例展示企業信息表與產品表的主從級聯操作。
prd_wxt_enterprise_tbl_EnterpriseInfo:EnterpriseId (PK, CHAR(10))、EnterpriseName、ShortName、Address、E_SystemShop_tbl_ProductInfo:P_Code (PK, CHAR(10))、EnterpriseId (FK)、P_Name、P_Price、P_UserPrice、RemarkCREATE PROCEDURE dbo.CreateEnterpriseWithProducts
@EnterpriseId CHAR(10),
@EnterpriseName VARCHAR(200),
@ProductList ProductType READONLY -- TVP 或 XML
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION
-- 1. 外層:創建企業
INSERT INTO prd_wxt_enterprise_tbl_EnterpriseInfo
VALUES (@EnterpriseId, @EnterpriseName, ...)
-- 2. 內層:批量創建產品(調用子存儲過程或直接 INSERT)
INSERT INTO Shop_tbl_ProductInfo (P_Code, EnterpriseId, P_Name, ...)
SELECT P_Code, @EnterpriseId, P_Name, ... FROM @ProductList
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION
THROW -- SQL 2012+;舊版用 RAISERROR
END CATCH
END
@@NESTLEVEL 監控)SAVE TRANSACTION 部分回滾)@@TRANCOUNT 計數器:每 BEGIN TRAN +1,COMMIT -1,歸零時真正提交BEGIN TRANTRY/CATCHBULK INSERT / Table-Valued Parameter