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

Откуда:
Сообщений: 82
Требуется программно определить перечень используемых таблиц для заданной хранимой процедуры
26 сен 16, 16:24    [19709445]     Ответить | Цитировать Сообщить модератору
 Re: как программно определить перечень таблиц в хранимке  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
СергV70,

чёта вопросы прям одинаковые сегодня :)
26 сен 16, 16:28    [19709466]     Ответить | Цитировать Сообщить модератору
 Re: как программно определить перечень таблиц в хранимке  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
СергV70
Требуется программно определить перечень используемых таблиц для заданной хранимой процедуры


никак
26 сен 16, 16:33    [19709500]     Ответить | Цитировать Сообщить модератору
 Re: как программно определить перечень таблиц в хранимке  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
а так?

SELECT * FROM   sys.sql_expression_dependencies 
WHERE 
	referencing_id = OBJECT_ID(N'DB.dbo.OBJECTNAME') AND 
	referenced_class_desc = 'OBJECT_OR_COLUMN'
26 сен 16, 16:41    [19709588]     Ответить | Цитировать Сообщить модератору
 Re: как программно определить перечень таблиц в хранимке  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
Примерно так же как тут определяют перечень столбцов.
26 сен 16, 16:41    [19709592]     Ответить | Цитировать Сообщить модератору
 Re: как программно определить перечень таблиц в хранимке  [new]
СергV70
Member

Откуда:
Сообщений: 82
WarAnt
СергV70
Требуется программно определить перечень используемых таблиц для заданной хранимой процедуры


никак


Не может быть.
Object Dedendencies показывает таблицы, используемые в хранимке, но почему-то не все, непосредственно используемые в запросах, некоторые показывает в дереве на более низком уровне.
Трассировкой вытянуть запросы, формирующие Object Dedendencies мне не удалось
26 сен 16, 16:42    [19709601]     Ответить | Цитировать Сообщить модератору
 Re: как программно определить перечень таблиц в хранимке  [new]
buven
Member

Откуда:
Сообщений: 792
СергV70,

не оно?
2008
26 сен 16, 16:42    [19709602]     Ответить | Цитировать Сообщить модератору
 Re: как программно определить перечень таблиц в хранимке  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
invm,

все таблицы там можно и не получить
26 сен 16, 16:43    [19709608]     Ответить | Цитировать Сообщить модератору
 Re: как программно определить перечень таблиц в хранимке  [new]
WarAnt
Member

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

SELECT * FROM   sys.sql_expression_dependencies 
WHERE 
	referencing_id = OBJECT_ID(N'DB.dbo.OBJECTNAME') AND 
	referenced_class_desc = 'OBJECT_OR_COLUMN'


вот тут попробуй определить?:)

declare @sql varchar(max) =  'select * from ' + 'table_' + LTRIM(STR(rand() * 100 ))
exec (@sql)
26 сен 16, 16:46    [19709641]     Ответить | Цитировать Сообщить модератору
 Re: как программно определить перечень таблиц в хранимке  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
WarAnt
TaPaK
а так?

SELECT * FROM   sys.sql_expression_dependencies 
WHERE 
	referencing_id = OBJECT_ID(N'DB.dbo.OBJECTNAME') AND 
	referenced_class_desc = 'OBJECT_OR_COLUMN'


вот тут попробуй определить?:)

declare @sql varchar(max) =  'select * from ' + 'table_' + LTRIM(STR(rand() * 100 ))
exec (@sql)


автор
таблиц для заданной хранимой процедуры

ну и для такого вариант сегодня уже обсудили
26 сен 16, 16:47    [19709653]     Ответить | Цитировать Сообщить модератору
 Re: как программно определить перечень таблиц в хранимке  [new]
СергV70
Member

Откуда:
Сообщений: 82
TaPaK
а так?

SELECT * FROM   sys.sql_expression_dependencies 
WHERE 
	referencing_id = OBJECT_ID(N'DB.dbo.OBJECTNAME') AND 
	referenced_class_desc = 'OBJECT_OR_COLUMN'


Вроде получилось
Спасибо за подсказку
26 сен 16, 16:47    [19709657]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить