Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET nocount ON
- DECLARE @name VARCHAR(128), @substr nvarchar(4000), @COLUMN VARCHAR(128)
- SET @substr = 'BAED936C-1E44-4E4A-AD32-F3E41CEB7FAC' --фрагмент строки, который будем искать
- CREATE TABLE #rslt
- (TABLE_NAME VARCHAR(128), field_name VARCHAR(128), VALUE uniqueidentifier)
- DECLARE s cursor FOR SELECT TABLE_NAME AS TABLE_NAME FROM information_schema.TABLES WHERE table_type = 'BASE TABLE' ORDER BY TABLE_NAME
- OPEN s
- fetch NEXT FROM s INTO @name
- while @@fetch_status = 0
- BEGIN
- DECLARE c cursor FOR
- SELECT quotename(column_name) AS column_name FROM information_schema.COLUMNS
- WHERE data_type IN ('uniqueidentifier') AND TABLE_NAME = @name
- SET @name = quotename(@name)
- OPEN c
- fetch NEXT FROM c INTO @COLUMN
- while @@fetch_status = 0
- BEGIN
- print 'Processing table - ' + @name + ', column - ' + @COLUMN
- EXEC('insert into #rslt select ''' + @name + ''' as Table_name, ''' + @COLUMN + ''', ' + @COLUMN +
- ' from' + @name + ' where ' + @COLUMN + ' like ''' + @substr + '''')
- fetch NEXT FROM c INTO @COLUMN
- END
- close c
- deallocate c
- fetch NEXT FROM s INTO @name
- END
- SELECT TABLE_NAME AS [TABLE Name], field_name AS [FIELD Name], COUNT(*) AS [Found Mathes] FROM #rslt
- GROUP BY TABLE_NAME, field_name
- ORDER BY TABLE_NAME, field_name
- --Если нужно, можем отобразить все найденные значения
- --select * from #rslt order by table_name, field_name
- DROP TABLE #rslt
- close s
- deallocate s
Advertisement
Add Comment
Please, Sign In to add comment