ALTER PROCEDURE [dbo].[spSave]
@InputItems char(2048)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @FilterID INT;
SET @FilterID = -1;
BEGIN TRANSACTION;
DECLARE @TempString varchar(2048)
DECLARE @Temp varchar(2048)
DECLARE @ChPos int
DELETE FROM WorkTable WHERE ID = @FilterID
IF @InputItems <> ''
BEGIN
SET @TempString = ''
SET @Temp = ''
SET @ChPos = -1
SET @TempString = @InputItems
SET @ChPos = CHARINDEX(',', @TempString)
WHILE @ChPos > 0
BEGIN
SET @Temp = SUBSTRING(@TempString, 1, (@ChPos - 1))
INSERT INTO WorkTable
(ID, YourValue)
VALUES
(@FilterID, CAST(@Temp AS int))
IF @@ERROR != 0 GOTO ErrorHandler
SET @TempString = SUBSTRING(
@TempString,
(@ChPos + 1),
(LEN(@TempString) - @ChPos))
SET @ChPos = CHARINDEX(',', @TempString)
END
INSERT INTO WorkTable
(ID, YourValue)
VALUES
(@FilterID, CAST(@TempString AS int))
IF @@ERROR != 0 GOTO ErrorHandler
END
COMMIT TRANSACTION
SELECT @FilterID AS RetVal
RETURN 0
ErrorHandler:
SELECT @FilterID AS RetVal
IF @@TRANCOUNT != 0 ROLLBACK TRANSACTION
RETURN @@ERROR
END
вторник, 24 июня 2008 г.
Подписаться на:
Комментарии к сообщению (Atom)
0 коммент.:
Отправить комментарий