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

Откуда: Омск
Сообщений: 736
Доброго времени суток всем всем.
Подскажите пожалуйста каким образом можно узнать обо всех объектах БД (ХП, триггеры, и т п), в которых применяется Update конкретной таблицы. Имя таблицы известно... А вот в каких объектах применятеся Update для нее нет((
Работаю со средой Management Studio. SQL Server 2008.
20 янв 16, 13:13    [18705524]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
dartveider13,

тригер настроить на update в таблице и складывать в лог кто и откуда сделал update
20 янв 16, 13:37    [18705728]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
dartveider13
Подскажите пожалуйста каким образом можно узнать обо всех объектах БД (ХП, триггеры, и т п), в которых применяется Update конкретной таблицы. Имя таблицы известно... А вот в каких объектах применятеся Update для нее нет((

Берете тексты всех "(ХП, триггеры, и т п" и ищите в них подстроку с именем вашей таблицы
За исключением очень хитрых вариантов написания найдете все, что нужно
20 янв 16, 13:40    [18705751]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Либо качайте бесплатные тулы:

http://www.red-gate.com/products/sql-development/sql-search/
https://www.devart.com/dbforge/sql/search/

и ищите в каких местах объект упоминается

Либо смотрите внутри метаданных:

CREATE TABLE dbo.Table1 (ID INT)
GO

CREATE PROCEDURE dbo.Proc1
AS BEGIN
	
    UPDATE Table1
    SET ID = 0

END
GO

SELECT OBJECT_NAME(referencing_id)
FROM sys.sql_expression_dependencies
WHERE referenced_id = OBJECT_ID('dbo.Table1')
20 янв 16, 13:40    [18705757]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 736
WarAnt, интересный вариант. А как понять каким образом обновилась таблица? Через ХП, через команду или еще что-нибудь. Конечная то цель у меня выяснить не кто ее обновил а каким образом
20 янв 16, 13:41    [18705761]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 736
AlanDenton, вариантик знакомый. Вот только он покажет просто зависимость. А мне нужно конкретно узнать в каких объектах происходит Update
20 янв 16, 13:44    [18705790]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 736
Glory, легко сказать (берете все тексты)... Подскажите как такой поиск можно сделать в среде Management Studio
20 янв 16, 13:45    [18705798]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
dartveider13
Подскажите как такой поиск можно сделать в среде Management Studio

Никак. Придется совершить телодвижения, т.е. получить все тексты - в запросе или в виде скрипта
Или установки какого-то аддона, который сделает это в фоновом режиме
20 янв 16, 13:47    [18705815]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Glory
dartveider13
Подскажите как такой поиск можно сделать в среде Management Studio

Никак. Придется совершить телодвижения, т.е. получить все тексты - в запросе или в виде скрипта
Или установки какого-то аддона, который сделает это в фоновом режиме
Из профайлера-то можно достать?
20 янв 16, 13:49    [18705830]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 736
Glory, Оооо этого добра там очень много. Я думаю этот вариант не очень... смотрю пока по ссылкам тулзы
20 янв 16, 13:49    [18705831]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
Glory
пропущено...

Никак. Придется совершить телодвижения, т.е. получить все тексты - в запросе или в виде скрипта
Или установки какого-то аддона, который сделает это в фоновом режиме
Из профайлера-то можно достать?
С последующим парсингом текста, разумеется
20 янв 16, 13:49    [18705834]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
dartveider13
Оооо этого добра там очень много.

Хосподи. Много чего ? Запрос на получение текста объекта состоит из одного запороса и одной функции
20 янв 16, 13:51    [18705847]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 736
Glory, объектов много
20 янв 16, 13:52    [18705858]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
dartveider13
Glory, объектов много

И что ? Вы вот в текстовом редакторе видели такой пункт меню как "Поиск" ?
20 янв 16, 13:53    [18705869]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 736
AlanDenton, спасибо вот этот тул помог http://www.red-gate.com/products/sql-development/sql-search/

Всем спасибо
20 янв 16, 13:55    [18705885]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
dartveider13
Glory, легко сказать (берете все тексты)... Подскажите как такой поиск можно сделать в среде Management Studio
Один раз нажать кнопочку "получить все тексты". Второй раз нажать кнопочку "поискать в текстах"
Второй вариант - за полминуты написать запрос, ищущий по текстам (См. OBJECT_DEFINITION)
dartveider13
AlanDenton, спасибо вот этот тул помог http://www.red-gate.com/products/sql-development/sql-search/
Всем спасибо
Жесть, ради такой задачи искать и ставить тул :-)
Я даже для выключения компа просто меню "пуск" использую, не качаю тулы, а тут для поиска текста :-)
20 янв 16, 14:00    [18705916]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 736
alexeyvg
Один раз нажать кнопочку "получить все тексты". Второй раз нажать кнопочку "поискать в текстах"


Где эта волшебная кнопочка? Я ж и спрашиваю т к не знаю...
20 янв 16, 14:01    [18705929]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
dartveider13
Где эта волшебная кнопочка?

В меню. Где же еще.
Называется Generate Script
20 янв 16, 14:03    [18705937]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
dartveider13
WarAnt, интересный вариант. А как понять каким образом обновилась таблица? Через ХП, через команду или еще что-нибудь. Конечная то цель у меня выяснить не кто ее обновил а каким образом


OBJECT_NAME(@@PROCID)
20 янв 16, 14:05    [18705951]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 736
Glory, уже теплее... Ну уж если еще и скажете в каком конкретно меню или скриншот покажете то будет вообще огонь))
20 янв 16, 14:06    [18705965]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
WarAnt
dartveider13
WarAnt, интересный вариант. А как понять каким образом обновилась таблица? Через ХП, через команду или еще что-нибудь. Конечная то цель у меня выяснить не кто ее обновил а каким образом


OBJECT_NAME(@@PROCID)
Это что??
Внутри триггера? Тогда вернётся имя триггера.
20 янв 16, 14:07    [18705977]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
dartveider13
Ну уж если еще и скажете в каком конкретно меню или скриншот покажете то будет вообще огонь))

В меню студии.
Вы умеете манипулятором мышь ?
20 янв 16, 14:09    [18705993]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
dartveider13
Member

Откуда: Омск
Сообщений: 736
WarAnt, Ок попробуем и ваш вариант тоже
20 янв 16, 14:09    [18705994]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
iap
Member

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

лень - двигатель прогресса?
SELECT type, name
FROM sys.objects
WHERE OBJECT_DEFINITION(object_id) LIKE N'%UPDATE%ИмяТаблицы%' COLLATE Cyrillic_General_CI_AI;
Правда, поскольку я всё упростил, вернутся и объекты, в тексте которых содержится фрагмент,
равный имени таблицы и в комментариях, и в текстовых строках, и в более длинных именах объектов и т.п....
Предлагаю вам доработать запрос и выложить его здесь.
20 янв 16, 14:12    [18706014]     Ответить | Цитировать Сообщить модератору
 Re: поиск объектов связанных с Update для таблицы  [new]
o-o
Guest
iap
WarAnt
пропущено...
OBJECT_NAME(@@PROCID)
Это что??
Внутри триггера? Тогда вернётся имя триггера.

это только если в самой таблице такое поле сделать с дефолтом.
но и то оно при инсерте будет иметь смысл, а при апдэйте нет
20 янв 16, 14:12    [18706020]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить