Объект базы данных, связанный с представлением - SQL Server 2005 - PullRequest
0 голосов
/ 10 февраля 2011

Как узнать, сколько таблиц базы данных, представлений или любых других объектов, прикрепленных к представлению в базе данных sql server 2005.Я пытался с Sp_Depends, но удивительно, что он не показывает имя SP, в котором он используется.

Когда я запускаю инструкцию Sp_depends vw_MyViewName.

Я получаю только имя таблици столбцы, которые я использовал внутри vw_MyViewName.Мне нужно знать другие объекты, связанные с этим видом.

Ответы [ 4 ]

1 голос
/ 11 февраля 2011

В SQL Server 2005 это происходит, если вы создаете объекты в неправильном порядке.

Вы получите предупреждение о том, что информация о зависимостях не может быть добавлена ​​для отсутствующего объекта, но объект все равно будет создан

Вы можете запустить sp_refreshsqlmodule для всех объектов в вашей базе данных, чтобы воссоздать такую ​​недостающую информацию о зависимостях (пример сценария, который делает это здесь Как найти все хранимые процедуры, которые вставляют, обновляют или удаляют записи? )

0 голосов
/ 11 февраля 2011

До появления sys.sql_expression_dependencies (SQL Server 2008) вам необходимо выполнить запрос sys.sql_modules

SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE definition LIKE '%MyTable%'

Лично я бы использовал С SCHEMABINDING , чтобы гарантировать наличие зависимостей

0 голосов
/ 10 февраля 2011

В SQL Server Management Studio на панели обозревателя объектов щелкните правой кнопкой мыши объект, который вы хотите проверить (хранимая процедура, таблица, представление и т. Д.), И щелкните «Показать зависимости».

В появившемся окне будут показаны как зависимые, так и «зависимые» объекты, просто переключаясь между двумя переключателями;)

Если вы хотите сделать это вручную, вам нужно создать запрос по системному представлению sys.sql_dependencies. Здесь ссылка на описание с некоторыми примерами

Остерегайтесь того, что будут созданы хранимые процедуры, которые зависят от неэкстантных таблиц, представлений и других объектов, но они не только явно не работают, но информация о зависимостях не будет добавлена, пока не будут созданы все "зависимые" объекты И ИП воссоздан!

0 голосов
/ 10 февраля 2011

Единственный полностью надежный способ определения зависимостей объектов в базе данных SQL Server - это загрузить вашу схему в Visual Studio Database Edition (DBPro) и изучить там зависимости. Я обнаружил, что это надежно, в отличие от того, как SQL Server отслеживает зависимости.

Я бы не стал ошибаться в этом за SQL Server. Я не думаю, что он когда-либо утверждал, что мог отслеживать зависимости со 100% точностью, в основном благодаря способу, которым он связывает объекты.

...