2017-01-18 2 views
1

Мне нужно перечислить весь объект внутри объекта и соответствующие столбцы, которые они возвращают из исходной таблицы.Список всех объектов и столбцов в SQL Server

См., Например,

Процедура usp_UspTask зовёт 3 функции

  1. fnt_Task1
  2. fnt_Task2
  3. fnt_Task3

Эти три функции прилегающая и возвращения выберите список usp_UspTask.

Теперь я хочу, чтобы список таблиц и столбцов использовался во всех трех функциях.

Есть ли какие-либо вопросы, которые могут возвращать эту информацию? Я знаю об информационной схеме, но там нужна соответствующая информация.

+0

Возможно, связанный с этим вопрос: [Как найти имя хранимой процедуры, основанной на поиске имени таблицы, с использованием SQL Server 2008?] (http://stackoverflow.com/q/6924257/4519059);). –

+0

Я думаю, что этот инструмент может помочь вам: http://www.red-gate.com/products/sql-development/sql-dependency-tracker/ Я не пробовал отслеживать зависимость, но я пробовал другие инструменты из красных ворот (sql search and ants profiler), и они всегда хорошо работают. Подсказка: есть бесплатная пробная версия. (Нет, я не работаю для красных ворот, мне просто нравятся их инструменты :) – mortb

ответ

2

Для SQL Server 2008 можно использовать sp_depends, который возвращает все объекты, которые этот объект зависит от и все объекты, которые зависят от этого объекта:

EXEC SP_DEPENDS fnt_Task1 

Это возвращает два набора данных:

  1. Dataset, который содержит объекты, зависящие от: имени объекта, типа (таблица/вид), обновленный, выбранный, столбец
  2. Набор данных, содержащий объекты в зависимости от этого объекта: имя и тип

Примечание sp_depends является устаревшим и в 2012 году, а позже вы должны использовать:

  • sys.dm_sql_referencing_entities и
  • sys.dm_sql_referenced_entities
Смежные вопросы