powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поиск значения по всей базе.
4 сообщений из 4, страница 1 из 1
Поиск значения по всей базе.
    #32009444
Marat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Может кто делал хранимую процедуру или выборку на тему:
Задается, к примеру, числовое значение и необходимо для текущей БД выбрать записи из все талиц, содержащее в каком-либо числовом поле данное значение в виде:
Таблице, Поле, Ключ (если он есть)
...
Рейтинг: 0 / 0
Поиск значения по всей базе.
    #32009454
НУ напиши цикл типа
DECLARE cur CURSOR FOR
SELECT name from sysobjects where type = 'U'

---втнутри цикла собирай строку:
SELECT @sSQL = 'SELECT * FROM ' + @sTable + ' WHERE FIELD = ' + CONVERT(varchar, @nValue)
EXECUTE ( @sSQL )

Вот и все. Можно конечно и хранимыми процедурами воспользоваться, но не помню имени, то типа ...foreeachtable...

И хорошо бы во всех таблицах иметь поле с одинм и тем же наименованием )))


Павел
...
Рейтинг: 0 / 0
Поиск значения по всей базе.
    #32009464
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create proc sp_find_value
@value sql_variant
as
begin
set nocount on

declare @strSQL nvarchar(4000)
declare @table_name sysname
declare @col_name sysname
declare @count int
declare @strMsg nvarchar(4000)

declare curSearch cursor fast_forward for
select so.name, sc.name from sysobjects so, syscolumns sc where so.id = sc.id and so.type in ('S', 'U')

open curSearch
fetch curSearch into @table_name, @col_name
while @@fetch_status = 0
begin
set @strSQL = 'select @count = count(*) from ' + @table_name + ' where ' + @col_name + ' = @value'
exec sp_executesql @strSQL, N'@value sql_variant, @count int out', @value = @value, @count = @count out

if @count > 0
begin
set @strMsg = @table_name + '.' + @col_name
print @strMsg
end

fetch curSearch into @table_name, @col_name
end
close curSearch
deallocate curSearch
end

Правда, будет ругаться на колонки типа text, ntext, image - они не могут участвовать в условии where. Если напрягает, поставь отсев через проверку поля в таблице systypes.
...
Рейтинг: 0 / 0
Поиск значения по всей базе.
    #32009482
Fompro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.gvu.newmail.ru/sp_search_on_all_db.zip
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поиск значения по всей базе.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]