Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Поиск по всем таблицам базы  [new]
smoyk
Member

Откуда: Кемерово
Сообщений: 1055
Есть значение, которое, как я знаю, есть гдето в базе, но не знаю ни таблицу, ни столбец. Можно его как то найти?
Заранее спасибо.
6 ноя 09, 04:58    [7889187]     Ответить | Цитировать Сообщить модератору
 Re: Поиск по всем таблицам базы  [new]
Supra93
Member

Откуда:
Сообщений: 8174
DECLARE @table_name VarChar(255)
DECLARE @column_name VarChar(255)
DECLARE @SQL varchar(255)
DECLARE @str VarChar(255)
CREATE TABLE #t([value] int)
--Итоговая таблица ркзультата
CREATE TABLE #rez(TABLE_NAME VarChar(255),COLUMN_NAME VarChar(255))
---------------------------------------------------------------------------------------------------
SET @str='Администратор'	--Это значение мы и ищим, собственно...
---------------------------------------------------------------------------------------------------
--Курсор для просмотра таблиц
DECLARE cursor_rowguid CURSOR FOR
SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE LIKE '%char%' ORDER BY TABLE_NAME
OPEN cursor_rowguid
FETCH NEXT FROM cursor_rowguid
INTO @table_name,@column_name
WHILE @@FETCH_STATUS = 0
BEGIN	
	BEGIN 	
		SET @SQL='SELECT COUNT(' + @column_name + ') FROM ' + @table_name + ' WHERE ' + @column_name + ' LIKE ''%' + @str + '%'''		
		INSERT INTO #t exec(@SQL)		
		IF(SELECT TOP 1 [value] FROM #t)>0 INSERT INTO #rez(TABLE_NAME,COLUMN_NAME) VALUES (@table_name,@column_name)		
		DELETE #t
	END 
	BEGIN 
		PRINT @table_name
	END 
	FETCH NEXT FROM cursor_rowguid
	INTO @table_name,@column_name
END
CLOSE cursor_rowguid
DEALLOCATE cursor_rowguid
DROP TABLE #t
SELECT TABLE_NAME AS 'ИМЯ ТАБЛИЦЫ',COLUMN_NAME AS 'ИМЯ КОЛОНКИ' FROM #rez
DROP TABLE #rez
Велосипед не мой, я просто дал объяву ©
6 ноя 09, 08:26    [7889309]     Ответить | Цитировать Сообщить модератору
 Re: Поиск по всем таблицам базы  [new]
GlebZ
Member

Откуда: USA
Сообщений: 284
Supra93

Велосипед не мой, я просто дал объяву ©

Ага, даже с теми-же граматическими ошибками.:D
Я его вовсю пользую.
6 ноя 09, 18:01    [7894072]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить