SourceCode/PROMS/SQL/FixFor256Number.SQL

114 lines
2.8 KiB
Transact-SQL

/****** Object: StoredProcedure [updateContent] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [updateContent];
GO
CREATE PROCEDURE [dbo].[updateContent]
(
@ContentID int,
@Number nvarchar(256)=null,
@Text nvarchar(MAX)=null,
@Type int=null,
@FormatID int=null,
@Config nvarchar(MAX)=null,
@DTS datetime,
@UserID nvarchar(100),
@LastChanged timestamp,
@newLastChanged timestamp output
)
AS
BEGIN TRY -- Try Block
BEGIN TRANSACTION
UPDATE [Contents]
SET
[Number]=@Number,
[Text]=@Text,
[Type]=@Type,
[FormatID]=@FormatID,
[Config]=@Config,
[DTS]=@DTS,
[UserID]=@UserID
WHERE [ContentID]=@ContentID AND [LastChanged]=@LastChanged
IF @@ROWCOUNT = 0
BEGIN
IF NOT exists(select * from [Contents] WHERE [ContentID]=@ContentID)
RAISERROR('Content record has been deleted by another user', 16, 1)
ELSE
RAISERROR('Content has been edited by another user', 16, 1)
END
SELECT @newLastChanged=[LastChanged]
FROM [Contents] WHERE [ContentID]=@ContentID
IF( @@TRANCOUNT > 0 ) COMMIT
END TRY
BEGIN CATCH -- Catch Block
IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback
EXEC vlnErrorHandler
END CATCH
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: updateContent Succeeded'
ELSE PRINT 'Procedure Creation: updateContent Error on Creation'
GO
/****** Object: StoredProcedure [addContent] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [addContent];
GO
CREATE PROCEDURE [dbo].[addContent]
(
@Number nvarchar(256)=null,
@Text nvarchar(MAX)=null,
@Type int=null,
@FormatID int=null,
@Config nvarchar(MAX)=null,
@DTS datetime,
@UserID nvarchar(100),
@newContentID int output,
@newLastChanged timestamp output
)
AS
BEGIN TRY -- Try Block
BEGIN TRANSACTION
INSERT INTO [Contents]
(
[Number],
[Text],
[Type],
[FormatID],
[Config],
[DTS],
[UserID]
)
VALUES
(
@Number,
@Text,
@Type,
@FormatID,
@Config,
@DTS,
@UserID
)
SELECT @newContentID= SCOPE_IDENTITY()
SELECT @newLastChanged=[LastChanged]
FROM [Contents] WHERE [ContentID]=@newContentID
IF( @@TRANCOUNT > 0 ) COMMIT
END TRY
BEGIN CATCH -- Catch Block
IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback
EXEC vlnErrorHandler
END CATCH
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: addContent Succeeded'
ELSE PRINT 'Procedure Creation: addContent Error on Creation'
GO