SQL Server development techniques and sql scripts
Nigel Rivett has quite a collection of SQL Server development techniques and sql scripts. The sp_executeSQL tip came in handy when I had to build the following procedures:
---------------------------------------------------------------------------------------------------- --Created: Friday, May 28, 2004, by Oskar Austegard --Purpose: Generic procedure to get the EditedTS for any given table and ID ---------------------------------------------------------------------------------------------------- ALTER PROC ConcurrencyGetEditedTS @TableName nvarchar(100), @IDName nvarchar(100), @ID int, @EditedTS datetime OUTPUT AS DECLARE @SQL nvarchar(250) SET @SQL = N'SELECT @EditedTS = EditedTS FROM ' + @TableName + N' WHERE ' + @IDName + '=' + CONVERT(nvarchar(9), @ID) EXEC sp_executesql @SQL, N'@EditedTS datetime OUTPUT', @EditedTS OUTPUT ---------------------------------------------------------------------------------------------------- --Created: Friday, May 28, 2004, by Oskar Austegard --Purpose: Generic procedure to check for concurrency violation for any table and ID ---------------------------------------------------------------------------------------------------- ALTER PROC ConcurrencyCheck @TableName nvarchar(100), @IDName nvarchar(100), @ID int, @EditedTS datetime AS DECLARE @ExistingTS datetime EXEC ConcurrencyGetEditedTS @TableName, @IDName, @ID, @ExistingTS OUTPUT IF @ExistingTS IS NULL RETURN -100 ELSE IF @ExistingTS <> @EditedTS BEGIN RAISERROR ('The Edited Time Stamp for the %s record with %s=%d differs from that stored in the database.', 16, 1, @TableName, @IDName, @ID) RETURN -999 END RETURN @ID
Labels: sql
0 Comments:
Post a Comment
<< Home