Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE [DataProcessing]
- GO
- /****** Object: StoredProcedure [dbo].[CorrectColumn] Script Date: 09/06/2014 14:16:51 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- ALTER PROCEDURE [dbo].[CorrectColumn] (@TableName NVARCHAR(25),
- @TargetColumn NVARCHAR(55),
- @TargetString NVARCHAR(55),
- @ReplacementString NVARCHAR(55)
- )
- /*
- =====================================
- +++ PROCEDURE NAME: CorrectColumn +++
- +++ AUTHORED BY: Kyle Korchak +++
- +++ DATE: 9-6-2014 +++
- =====================================
- +------------------------------------------+
- ¦~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~¦
- ¦------------------------------------------¦
- ¦ THIS STORED PROC IS USED TO TRUNCATE ¦
- ¦ AND CORRECT THE CONTENTS OF A COLUMN ¦
- ¦ ¦
- ¦ IT IS WRITTEN IN A DYNAMIC STYLE TO MAKE ¦
- ¦ IF VERY VERSITILE. CAN BE USED ON MOST ¦
- ¦ DATABASES, ALMOST ANY TABLE, REGARDLESS ¦
- ¦ OF HOW THE TABLE IS DESIGNED. ¦
- ¦ ¦
- ¦ IN ADDITION TO THAT, IT CAN ALSO BE ¦
- ¦ MODIFIED WITH VERY LITTLE WORK TO MAKE ¦
- ¦ IT MORE CUSTOMIZED TO A PARTICULAR ¦
- ¦ TABLE. FOR EXAMPLE, YOU CAN REMOVE THE ¦
- ¦ VARIABLE FUNCTION OF: ¦
- ¦ @TableName ¦
- ¦ @TargetColumn ¦
- ¦ @ReplacementString ¦
- ¦ ¦
- ¦ AND MAKE THIS FUNCTION IN A MECHANICAL ¦
- ¦ MANNER THAT PERFECTLY AFFECTS YOUR OWN ¦
- ¦ TABLE. ¦
- ¦------------------------------------------¦
- ¦FOR MORE NOTES PLEASE SEE BELOW ALL THE ¦
- ¦CODE! ¦
- +------------------------------------------+
- */
- AS
- BEGIN
- DECLARE @lenTargetString NVARCHAR(25)
- DECLARE @lenSourceString NVARCHAR(25)
- DECLARE @sqlUPDATE NVARCHAR(MAX)
- DECLARE @sqlSET NVARCHAR(MAX)
- DECLARE @sqlWHERE NVARCHAR(MAX)
- -- COMPILE PARTS OF THE DYNAMIC SQL STRING
- SET @lenTargetString = LEN(@TargetString)
- SET @sqlUPDATE = N'UPDATE ' + @TableName
- SET @sqlSET = N' SET ' + @TargetColumn + ' = ''' + @ReplacementString + ''' + SUBSTRING(' + @TargetColumn + ', ' + @lenTargetString + ', LEN(' + @TargetColumn + ')-' + @lenTargetString + ') '
- SET @sqlWHERE = ' WHERE ' + @TargetColumn + ' LIKE ''' + @TargetString + ''''
- -- EXECUTE COMPOUND DYNAMIC SQL STRING
- -- PRINT 'String being executed:' /* To debug remove leading double-dash. */
- -- PRINT @sqlUpdate + ' ' + @sqlSET + ' ' + @sqlWHERE /* To debug remove leading double-dash. */
- EXEC (@sqlUpdate + ' ' + @sqlSET + ' ' + @sqlWHERE)
- END
Advertisement
Add Comment
Please, Sign In to add comment