Advertisement
Guest User

Untitled

a guest
Aug 26th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.58 KB | None | 0 0
  1. /* Set @SearchStr to a string you are looking for and all text columns of a DB
  2. will be searched to find that string */
  3.  
  4. DECLARE @sql nvarchar(4000)
  5. DECLARE @SearchStr nvarchar(100)
  6. SET @SearchStr = 'TYPE What you are looking for here'
  7.  
  8. DECLARE @Results TABLE (
  9. TableName nvarchar(256)
  10. , ColumnName nvarchar(370)
  11. , ColumnValue nvarchar(3630)
  12. )
  13.  
  14. SET NOCOUNT ON
  15.  
  16. DECLARE @TableName nvarchar(256)
  17. , @ColumnName nvarchar(128)
  18. , @SearchStr2 nvarchar(110)
  19. SET @TableName = ''
  20. SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%', '''')
  21.  
  22. WHILE @TableName IS NOT NULL
  23. BEGIN
  24. SET @ColumnName = ''
  25. SET @TableName = (SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
  26. FROM INFORMATION_SCHEMA.TABLES
  27. WHERE TABLE_TYPE = 'BASE TABLE'
  28. AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
  29. AND OBJECTPROPERTY(OBJECT_ID(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)),
  30. 'IsMSShipped') = 0)
  31.  
  32. WHILE (@TableName IS NOT NULL)
  33. AND (@ColumnName IS NOT NULL)
  34. BEGIN
  35. SET @ColumnName = (SELECT MIN(QUOTENAME(COLUMN_NAME))
  36. FROM INFORMATION_SCHEMA.COLUMNS
  37. WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
  38. AND TABLE_NAME = PARSENAME(@TableName, 1)
  39. AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
  40. AND QUOTENAME(COLUMN_NAME) > @ColumnName)
  41.  
  42. IF @ColumnName IS NOT NULL
  43. BEGIN
  44. SET @sql = 'SELECT TableName = ''' + @TableName + ''', ''' + @TableName + '.' + @ColumnName
  45. + ''', LEFT(' + @ColumnName + ', 3630)
  46. FROM ' + @TableName + ' (NOLOCK) ' + 'WHERE ' + @ColumnName
  47. + ' LIKE ' + @SearchStr2
  48. --PRINT @sql
  49. INSERT INTO @Results
  50. EXECUTE (@sql
  51. )
  52. END
  53. END
  54. END
  55.  
  56. SELECT * FROM @Results
  57.  
  58. create function dbo.FindString( @SearchStr Varchar(256) )
  59.  
  60. RETURNS
  61. @Results TABLE (
  62. TableName nvarchar(256)
  63. , ColumnName nvarchar(370)
  64. , ColumnValue nvarchar(3630)
  65. )
  66. AS
  67. BEGIN
  68.  
  69. DECLARE @sql nvarchar(4000)
  70. --DECLARE @SearchStr nvarchar(100)
  71. SET @SearchStr = ''
  72.  
  73.  
  74. SET NOCOUNT ON
  75.  
  76. DECLARE @TableName nvarchar(256)
  77. , @ColumnName nvarchar(128)
  78. , @SearchStr2 nvarchar(110)
  79. SET @TableName = ''
  80. SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%', '''')
  81.  
  82. WHILE @TableName IS NOT NULL
  83. BEGIN
  84. SET @ColumnName = ''
  85. SET @TableName = (SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
  86. FROM INFORMATION_SCHEMA.TABLES
  87. WHERE TABLE_TYPE = 'BASE TABLE'
  88. AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
  89. AND OBJECTPROPERTY(OBJECT_ID(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)),
  90. 'IsMSShipped') = 0)
  91.  
  92. WHILE (@TableName IS NOT NULL)
  93. AND (@ColumnName IS NOT NULL)
  94. BEGIN
  95. SET @ColumnName = (SELECT MIN(QUOTENAME(COLUMN_NAME))
  96. FROM INFORMATION_SCHEMA.COLUMNS
  97. WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
  98. AND TABLE_NAME = PARSENAME(@TableName, 1)
  99. AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
  100. AND QUOTENAME(COLUMN_NAME) > @ColumnName)
  101.  
  102. IF @ColumnName IS NOT NULL
  103. BEGIN
  104. SET @sql = 'SELECT TableName = ''' + @TableName + ''', ''' + @TableName + '.' + @ColumnName
  105. + ''', LEFT(' + @ColumnName + ', 3630)
  106. FROM ' + @TableName + ' (NOLOCK) ' + 'WHERE ' + @ColumnName
  107. + ' LIKE ' + @SearchStr2
  108. --PRINT @sql
  109. INSERT INTO @Results
  110. EXECUTE (@sql
  111. )
  112. END
  113. END
  114.  
  115. END
  116.  
  117. Return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement