|
Sybase
|
|
|
|
|
Продукты
|
|
|
|
|
Сообщества
|
|
|
|
|
Меню
|
|
|
|
|
Вход
|
|
|
|
|
Рассылка
|
|
|
|
|
Статистика
|
|
|
|
|
Поиск текста в обьектах БД
|
Поиск текста в обьектах БД
CREATE PROCEDURE "DBA"."sp_asc_ScriptFindText"(
IN @WhereText long varchar,
IN @Owner char(128) DEFAULT NULL
)
BEGIN
DECLARE LOCAL TEMPORARY TABLE #Objects (
TypeObject char(10) NOT NULL,
Owner char(128) NOT NULL,
Name char(255) NOT NULL,
Script long varchar NULL,
PCTFREE 0
) NOT TRANSACTIONAL;
DECLARE @User_id unsigned int;
IF @Owner IS NOT NULL
THEN
SET @User_id = User_id(@Owner);
END IF;
EXECUTE IMMEDIATE WITH RESULT SET ON '
INSERT INTO #Objects (Owner, Name, TypeObject, Script)
SELECT User_Name(Creator), Table_Name AS Name, ''View'' AS TypeObject, Source AS Script
FROM sys.SysTable
WHERE Table_Type = ''VIEW'' ' || IF @Owner IS NOT NULL THEN ' AND Creator = ' || @User_id ENDIF || ' AND (' || @WhereText || ')
UNION ALL
SELECT User_Name(Creator), Table_Name || ''.'' || Trigger_Name AS Name, ''Trigger'' AS TypeObject, trg.Source AS Script
FROM sys.SysTrigger trg
KEY JOIN sys.SysTable tbl
WHERE Trigger_Name IS NOT NULL ' || IF @Owner IS NOT NULL THEN ' AND Creator = ' || @User_id ENDIF ||
' AND (' || @WhereText || ')
UNION ALL
SELECT User_Name(Creator), Proc_Name AS Name, ''Procedure'' AS TypeObject, Source AS Script
FROM sys.SysProcedure
WHERE (' || @WhereText || ')' || IF @Owner IS NOT NULL THEN ' AND Creator = ' || @User_id ENDIF;
SELECT TypeObject, Owner, Name, 'ALTER ' || SubStr(Script, 8) AS Script
FROM #Objects
ORDER BY TypeObject, Name;
END;
Теперь можно найти в БД все обьекты, в которых есть упоминание Table1:
CALL "DBA"."sp_asc_ScriptFindText" (
@WhereText = 'Script LIKE ''%Table1%''',
@Owner = 'DBA'
);
P.S. Для выходящей 10-ой версии фукнции штатного поиска были включены в Sybase Central, так что после перехода на 10-ку пользователи ASA получат удобный и гибкий механизм поиска, причем не только в скриптах обьектов БД, но и в самих данных таблиц.
|
Дата публикации: Thursday 20 July 2006 11:18:28 Материал прочитан: 18830 раз(а) [ Назад ] |
|
|
|
|
|
|
Copyright©2005 . Все права защищены.
|