USE [YOUR DB NAME]
GO
/****** Object: StoredProcedure [dbo].[YOUR SP1 NAME] Script Date: 12/21/2012 15:56:33 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[YOUR SP1 NAME]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[YOUR SP1 NAME]
GO
USE [YOUR DB NAME]
GO
/****** Object: StoredProcedure [dbo].[YOUR SP1 NAME] Script Date: 12/21/2012 15:56:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[YOUR SP1 NAME]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @insertRecordFromVSTO_id int
DECLARE c_insertRecordFromVSTO CURSOR FOR
SELECT [id]
FROM [dbo].[q_async_insert_VSTO_part_params]
WHERE [dbo].[q_async_insert_VSTO_part_params].[is_save] = 0;
OPEN c_insertRecordFromVSTO;
FETCH NEXT FROM c_insertRecordFromVSTO into @insertRecordFromVSTO_id
WHILE @@FETCH_STATUS=0
BEGIN
BEGIN TRAN --开始一个事务OK
BEGIN try
EXECUTE [dbo].[YOUR SP 2 NAME] @insertRecordFromVSTO_id
COMMIT TRAN
UPDATE [dbo].[q_async_insert_VSTO_part_params] SET [dbo].[q_async_insert_VSTO_part_params].[is_save] = 1
WHERE [dbo].[q_async_insert_VSTO_part_params].[id] = @insertRecordFromVSTO_id;
END TRY
BEGIN CATCH
IF(@@ERROR<>0)
BEGIN
ROLLBACK TRAN
PRINT ERROR_MESSAGE()
insert into q_async_save_error(ErrorDate,ErrorMsg,q_async_insert_VSTO_part_params_id)
select getdate(),error_message(),@insertRecordFromVSTO_id
UPDATE [dbo].[q_async_insert_VSTO_part_params] SET [dbo].[q_async_insert_VSTO_part_params].[is_save] = 2
WHERE [dbo].[q_async_insert_VSTO_part_params].[id] = @insertRecordFromVSTO_id;
END
END catch
FETCH NEXT FROM c_insertRecordFromVSTO into @insertRecordFromVSTO_id
END
CLOSE c_insertRecordFromVSTO;
DEALLOCATE c_insertRecordFromVSTO;
END
GO