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

Откуда: Москва
Сообщений: 532
Добрый день! Проблема следующая есть SQL Server 2000. Никакой инфы от старой команды нет. Там есть таблица, которая каким то образом ежедневно наполняется. Объектов в базе много! Подскажите скрипт, как мне найти эти процедуры или функции, где в тексте есть упоминание нужной таблицы?
7 дек 17, 10:06    [21013755]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24463
select name from sys.all_objects
where type ='P'
and object_definition(object_id) like '%table%'
7 дек 17, 10:18    [21013799]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
msleg
Member

Откуда: Москва
Сообщений: 532
Maxx,

Пишет ошибку
Msg 195, Level 15, State 10, Line 3
'object_definition' is not a recognized function name.
7 дек 17, 10:30    [21013844]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24463
тогда sys.comments where text like '%table%'
7 дек 17, 10:37    [21013879]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
msleg
Member

Откуда: Москва
Сообщений: 532
Maxx,

Запускаю
SELECT * FROM sys.comments where text like '%_golubev_ExSalesTeam_Sales%'

Ошибка
Msg 208, Level 16, State 1, Line 5
Invalid object name 'sys.comments'.
7 дек 17, 10:54    [21013970]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Yasha123
Member

Откуда:
Сообщений: 704
msleg
Maxx,

Запускаю
SELECT * FROM sys.comments where text like '%_golubev_ExSalesTeam_Sales%'

Ошибка
Msg 208, Level 16, State 1, Line 5
Invalid object name 'sys.comments'.

а это точно SQL Server?
версию кстати покажите: select @@version
если напишет Incorrect syntax near @@version,
то сервер какой-то другой
-----
Махх!!! сколько лет, сколько зим.
я о-о, под меня стали маскироваться определенный личности,
пришлось прибегнуть к синему нику
7 дек 17, 11:04    [21014026]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
msleg
Member

Откуда: Москва
Сообщений: 532
Решил вопрос с помощью недокументированной функции

sp_msforeachdb 'select ''?'' AS DBName,Routine_name, routine_definition from ?.information_schema.routines
WHERE routine_name like ''%_golubev_ExSalesTeam_Sales%''
order by routine_name'
7 дек 17, 11:08    [21014052]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
msleg
Member

Откуда: Москва
Сообщений: 532
Yasha123,

Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
7 дек 17, 11:11    [21014077]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Yasha123
Member

Откуда:
Сообщений: 704
msleg
Maxx,

Запускаю
SELECT * FROM sys.comments where text like '%_golubev_ExSalesTeam_Sales%'

Ошибка
Msg 208, Level 16, State 1, Line 5
Invalid object name 'sys.comments'.

да блин.syscomments же.
одно слово, не было в 2000-ом схемы sys
7 дек 17, 11:12    [21014085]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Yasha123
Member

Откуда:
Сообщений: 704
msleg
Yasha123,

Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

ок-ок,
это мы все испорчены новыми версиями.
в 2000-ом же syscomments, sysobject, sysprocesses,...
нет схемы sys, а sys -- просто прфикс в именах системных таблиц
7 дек 17, 11:16    [21014103]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Cammomile
Member

Откуда:
Сообщений: 1025
msleg, дружище. Извини за оффтоп. Но ... БЕГИ ОТТУДА, БЕГИ СЛОВНО ВЕТЕР!

Серьезно, в 17 (почти 18) году работать с 2000 это мрак.
7 дек 17, 11:24    [21014140]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Не помню, есть ли в 2000 View Dependecies (в попап меню у списка таблиц). Должно быть.
Скрипт там довольно сложный. Но зависимости показывает хорошо.

Сабж может заполняться и без ХП. Тогда понять логику вставки будет сложно.
7 дек 17, 11:33    [21014199]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24463
Yasha123
Махх!!! сколько лет, сколько зим.
я о-о, под меня стали маскироваться определенный личности,
пришлось прибегнуть к синему нику

привет :)

блин ну нет под рукой 2000...
блин ничего не меняеться
ТС - RTFM
7 дек 17, 12:05    [21014358]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24463
Maxx
ТС - RTFM


dbo.syscommets в sql2000 было таки
7 дек 17, 12:06    [21014369]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Yasha123
Member

Откуда:
Сообщений: 704
Maxx
блин ну нет под рукой 2000...
блин ничего не меняеться

у меня тоже больше нет.
и не только 2000-ого,
все мое зоо осталось на старом компе,
теперь у нас терминальные сессии,
USB отрублены,
и даже музон/книги приходится себе из дома расшаривать
7 дек 17, 12:08    [21014377]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Yasha123
Member

Откуда:
Сообщений: 704
Maxx
Maxx
ТС - RTFM


dbo.syscommets в sql2000 было таки

конечно было.
но сервер не находил sys.comments, а не syscomments
7 дек 17, 12:09    [21014393]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24463
Yasha123
и даже музон/книги приходится себе из дома расшаривать

а я ваще все такое с телефона
7 дек 17, 12:10    [21014398]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24463
Yasha123
конечно было.
но сервер не находил sys.comments, а не syscomments

и все ето было в мезозойскую еру ,а люди все равно хелп не читают и в гугле забанены :)
Да и поиск по форуму видимо тоже не работает :)
7 дек 17, 12:11    [21014403]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Yasha123
Member

Откуда:
Сообщений: 704
Maxx
и все ето было в мезозойскую еру ,а люди все равно хелп не читают и в гугле забанены :)
Да и поиск по форуму видимо тоже не работает :)

хэлп уже давно как угадили.
а по 2000-ому и вовсе истребили.

зато поменялись фэйсы на форуме.
вменяемые личности почти не пишут,
в основном идет обмен "знаниями"
между недо-студентами и самопровозглашенным экспертом
7 дек 17, 12:15    [21014433]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24463
Maxx
Да и поиск по форуму видимо тоже не работает :)

працюэ
7 дек 17, 12:22    [21014493]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
sfgjg
Guest
https://www.microsoft.com/en-us/download/details.aspx?id=51958
SQL 2000 BOL
7 дек 17, 13:59    [21015027]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 1602
Yasha123
msleg
Maxx,

Запускаю
SELECT * FROM sys.comments where text like '%_golubev_ExSalesTeam_Sales%'

Ошибка
Msg 208, Level 16, State 1, Line 5
Invalid object name 'sys.comments'.

а это точно SQL Server?
версию кстати покажите: select @@version
если напишет Incorrect syntax near @@version,
то сервер какой-то другой
-----
Махх!!! сколько лет, сколько зим.
я о-о, под меня стали маскироваться определенный личности,
пришлось прибегнуть к синему нику


хмм.. вот оно чё... угу.
7 дек 17, 14:15    [21015095]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
msleg
Member

Откуда: Москва
Сообщений: 532
Еще одну процедуру нашел поиска объектов

CREATE procedure [dbo].[find_refs]
	@text varchar(250),  
	@dbname varchar(64) = null  
AS begin
	set nocount on
	-- Назначение: Процедура возвращает все объекты в которых прсутствует подстрока
	-- Description: Search a text in stored procedure source code.  
	-- @text - any text to find, search is done by like '%text%'  
	-- @dbname - database where to search,   
	--         - if omitted, all databases in the SQL server instance  
 
	if @dbname is null begin  
		--enumerate all databases.  
		declare #db CURSOR FOR Select Name from master..sysdatabases where  name not in ('tempdb', 'Northwind') and [status] <> 536
		declare @c_dbname varchar(64)  
		OPEN #db FETCH #db INTO @c_dbname  
		while @@FETCH_STATUS <> -1 --and @MyCount < 500  
		begin  
			execute find_refs @text, @c_dbname  
			FETCH #db INTO @c_dbname  
		end    
		CLOSE #db DEALLOCATE #db  
	end 
	else begin   
		declare @sql varchar(250)  
		--create the find like command  
		select @sql = 'select ''' + @dbname + ''' as db, o.type, o.name, c.[text] '
		select @sql = @sql + 'from ' + @dbname + '..syscomments c (nolock) '
		select @sql = @sql + 'join ' + @dbname + '..sysobjects o (nolock) on o.id= c.id '
		select @sql = @sql + 'where c.[text] like ''%' + @text + '%'''  
		execute (@sql)  
	end 

end  
12 дек 17, 10:21    [21026038]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных в процедурах и функциях SQL SERVER 2000  [new]
msleg
Member

Откуда: Москва
Сообщений: 532
И еще если нужно будет найти процедуру в всех джобах - SQL Server
SELECT _jobs.name 
FROM msdb.dbo.sysjobsteps AS _steps
JOIN msdb.dbo.sysjobs AS _jobs
    ON _jobs.job_id=_steps.job_id
WHERE _steps.command LIKE '%sp_SALES_FULL%'
12 дек 17, 11:13    [21026272]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить