kyle_engineer

SQL Stored Proc - Correct any number of leading chars.

Sep 6th, 2014
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.57 KB | None | 0 0
  1. USE [DataProcessing]
  2. GO
  3. /****** Object:  StoredProcedure [dbo].[CorrectColumn]    Script Date: 09/06/2014 14:16:51 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8.  
  9. ALTER PROCEDURE [dbo].[CorrectColumn] (@TableName NVARCHAR(25),
  10.                                        @TargetColumn NVARCHAR(55),
  11.                                        @TargetString NVARCHAR(55),
  12.                                        @ReplacementString NVARCHAR(55)
  13.                                        )
  14.  
  15. /*
  16. =====================================
  17. +++ PROCEDURE NAME: CorrectColumn +++
  18. +++ AUTHORED BY: Kyle Korchak     +++
  19. +++ DATE: 9-6-2014                +++
  20. =====================================
  21. +------------------------------------------+
  22. ¦~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~¦
  23. ¦------------------------------------------¦
  24. ¦ THIS STORED PROC IS USED TO TRUNCATE     ¦
  25. ¦ AND CORRECT THE CONTENTS OF A COLUMN     ¦
  26. ¦                     ¦
  27. ¦ IT IS WRITTEN IN A DYNAMIC STYLE TO MAKE ¦
  28. ¦ IF VERY VERSITILE. CAN BE USED ON MOST   ¦
  29. ¦ DATABASES, ALMOST ANY TABLE, REGARDLESS  ¦
  30. ¦ OF HOW THE TABLE IS DESIGNED.           ¦
  31. ¦                     ¦
  32. ¦ IN ADDITION TO THAT, IT CAN ALSO BE      ¦
  33. ¦ MODIFIED WITH VERY LITTLE WORK TO MAKE   ¦
  34. ¦ IT MORE CUSTOMIZED TO A PARTICULAR       ¦
  35. ¦ TABLE. FOR EXAMPLE, YOU CAN REMOVE THE   ¦
  36. ¦ VARIABLE FUNCTION OF:               ¦
  37. ¦      @TableName         ¦
  38. ¦      @TargetColumn          ¦
  39. ¦      @ReplacementString     ¦
  40. ¦                     ¦
  41. ¦ AND MAKE THIS FUNCTION IN A MECHANICAL   ¦
  42. ¦ MANNER THAT PERFECTLY AFFECTS YOUR OWN   ¦
  43. ¦ TABLE.                  ¦
  44. ¦------------------------------------------¦
  45. ¦FOR MORE NOTES PLEASE SEE BELOW ALL THE   ¦
  46. ¦CODE!                    ¦
  47. +------------------------------------------+
  48. */
  49.  
  50. AS
  51. BEGIN
  52.     DECLARE @lenTargetString NVARCHAR(25)
  53.     DECLARE @lenSourceString NVARCHAR(25)
  54.     DECLARE @sqlUPDATE NVARCHAR(MAX)
  55.     DECLARE @sqlSET NVARCHAR(MAX)
  56.     DECLARE @sqlWHERE NVARCHAR(MAX)
  57.  
  58. -- COMPILE PARTS OF THE DYNAMIC SQL STRING
  59.     SET @lenTargetString = LEN(@TargetString)
  60.     SET @sqlUPDATE = N'UPDATE ' + @TableName
  61.     SET @sqlSET =   N' SET ' + @TargetColumn + ' = ''' + @ReplacementString + ''' + SUBSTRING(' + @TargetColumn + ', ' + @lenTargetString + ', LEN(' + @TargetColumn + ')-' + @lenTargetString + ') '
  62.     SET @sqlWHERE = ' WHERE ' + @TargetColumn + ' LIKE ''' + @TargetString + ''''
  63.  
  64. -- EXECUTE COMPOUND DYNAMIC SQL STRING
  65. -- PRINT 'String being executed:' /* To debug remove leading double-dash. */
  66. -- PRINT @sqlUpdate + ' ' + @sqlSET + ' ' + @sqlWHERE /* To debug remove leading double-dash. */
  67.     EXEC (@sqlUpdate + ' ' + @sqlSET + ' ' + @sqlWHERE)
  68.  
  69. END
Advertisement
Add Comment
Please, Sign In to add comment