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

что пробовала:

select *
from sys.sql_dependencies
where object_name(object_id) = 'my_sp'

выдает все упоминания о таблицах, функциях и процедурах,
но не быдает ни одну вьюху, почему?

думаю ок, нажму правой кнопкой на процедуре, view dependencies.
и в профайлере посмотрю, что он засылает на сервер.
но и тут засада(прилагаю картинку)

граждане, кто может скопировать сюда, что засылается на сервер по команде view dependencies,
или может кто скажет, почему не выдает упоминания о вьюхах
и где тогда их искать?
заранее спасибо

К сообщению приложен файл. Размер - 10Kb
14 сен 12, 12:50    [13164003]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
Glory
Member

Откуда:
Сообщений: 104751
Студия патчилась ? Ее версия совпадает с версией сервера ?
14 сен 12, 12:56    [13164085]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
SELECT [type],[name]
FROM sys.objects
WHERE OBJECT_DEFINITION([object_id]) LIKE N'%my[_]sp%';
Правда, обнаружатся объекты, в которых есть строка, частью которой является подстрока 'my_sp'.
Потому что здесь не анализируются разделители слева и справа.
А также начало и конец текста.
Легко доработать.
14 сен 12, 12:59    [13164132]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
beg_inner
Guest
Microsoft SQL Server Management Studio 10.50.1600.1

select @@VERSION

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) Apr 2 2010 15:53:02 Copyright (c) Microsoft Corporation Express Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)

кажись, оба RTM.
сейчас поищу сервис-паки, спасибо.
но вьюхи хотелось бы получить кодом, не подскажете, как?
14 сен 12, 13:03    [13164173]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
beg_inner
Guest
iap
SELECT [type],[name]
FROM sys.objects
WHERE OBJECT_DEFINITION([object_id]) LIKE N'%my[_]sp%';
Правда, обнаружатся объекты, в которых есть строка, частью которой является подстрока 'my_sp'.
Потому что здесь не анализируются разделители слева и справа.
А также начало и конец текста.
Легко доработать.


не, мне не надо упоминания о моей процедуре.
мне надо упомянутые в этой процедуре вьюхи (и это не для 1ой процедуры, а для всех,
т.е. вариант "поищи глазками" не катит, надо запросом).
названия вьюх я заранее не знаю, как же я сделаю LIKE неизвестно_что
14 сен 12, 13:08    [13164222]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
Glory
Member

Откуда:
Сообщений: 104751
beg_inner
не, мне не надо упоминания о моей процедуре.
мне надо упомянутые в этой процедуре вьюхи (и это не для 1ой процедуры, а для всех,

И что мешает поставить в LIKE N'' имя нужного объекта ?
14 сен 12, 13:09    [13164233]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
beg_inner
iap
SELECT [type],[name]
FROM sys.objects
WHERE OBJECT_DEFINITION([object_id]) LIKE N'%my[_]sp%';
Правда, обнаружатся объекты, в которых есть строка, частью которой является подстрока 'my_sp'.
Потому что здесь не анализируются разделители слева и справа.
А также начало и конец текста.
Легко доработать.


не, мне не надо упоминания о моей процедуре.
мне надо упомянутые в этой процедуре вьюхи (и это не для 1ой процедуры, а для всех,
т.е. вариант "поищи глазками" не катит, надо запросом).
названия вьюх я заранее не знаю, как же я сделаю LIKE неизвестно_что
SELECT [type],[name]
FROM sys.objects
WHERE CHARINDEX([name],OBJECT_DEFINITION(OBJECT_ID(N'my_sp','P')))>0;
??
14 сен 12, 13:14    [13164293]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
CHARINDEX() - это из опасения, что в имя объекта может входить подчёркивание, процент, квадратные скобки...
14 сен 12, 13:16    [13164321]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Поставьте CodeGuard и радуйтесь.
14 сен 12, 15:15    [13165569]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Mnior
Поставьте CodeGuard и радуйтесь.
beg_inner
хотелось бы получить кодом, не подскажете, как?
14 сен 12, 15:24    [13165683]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
iap
Mnior
Поставьте CodeGuard и радуйтесь.
beg_inner
хотелось бы получить кодом, не подскажете, как?

просите - и дадено будет вам (С)? :)
14 сен 12, 15:27    [13165715]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
beg_inner
Guest
iap
SELECT [type],[name]
FROM sys.objects
WHERE CHARINDEX([name],OBJECT_DEFINITION(OBJECT_ID(N'my_sp','P')))>0;
??


прошу прощения за поздний ответ, интернет на работе вообще вырубился.
за решение спасибо, правда, выгребается куча лишнего.
обнаружились процедуры, имеющие имена, совпадающие с названиями столбцов.
или, например, выгреблись названия таблиц, которые являются подстрокой в названиях полей.
но, объясните плиз, а почему в sys.sql_dependencies не попадают вьюшки?
причем ситуацию не могу воспроизвести на домашнем компьютере.
думала, может после переименования вьюхи что-то где-то не обновляется
(как в sql_modules), но нет, переименованные вьюхи на домашнем компе попадают в sql_dependencies для процедуры.
а на работе ни одна вьюха не попадает.
причем и права на вьюхи есть, и по правой кнопке на view dependencies вываливаются вьюхи.
в чем прикол-то?
17 сен 12, 21:49    [13179119]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
select
 r.referenced_server_name,
 r.referenced_database_name,
 r.referenced_schema_name,
 r.referenced_entity_name
from
 sys.dm_sql_referenced_entities('my_sp', 'object') r join
 sys.objects o on o.object_id = r.referenced_id
where
 r.referenced_class_desc = 'OBJECT_OR_COLUMN' and
 r.referenced_minor_id = 0 and
 o.type = 'V';
17 сен 12, 22:56    [13179376]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
step_ks
Member

Откуда:
Сообщений: 936
beg_inner
но, объясните плиз, а почему в sys.sql_dependencies не попадают вьюшки?
причем ситуацию не могу воспроизвести на домашнем компьютере.
думала, может после переименования вьюхи что-то где-то не обновляется
(как в sql_modules), но нет, переименованные вьюхи на домашнем компе попадают в sql_dependencies для процедуры.
а на работе ни одна вьюха не попадает.
причем и права на вьюхи есть, и по правой кнопке на view dependencies вываливаются вьюхи.
в чем прикол-то?

вью создана после создания хп?
17 сен 12, 23:05    [13179407]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
beg_inner
Guest
invm, спасибо, завтра на работе попробую, вечером отпишусь.
step_ks, понятия не имею.
в наследство досталось.
несколько сотен вью и 65 интересующих процедур, для которых нужно получить список использующихся в них вьюшек и таблиц.
через sql_dependencies таблицы выцепились, а вьюхи нет.
17 сен 12, 23:53    [13179539]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
beg_inner
Guest
в общем, с вьюхами проблема всеми способами.
завешиваю картинку.
для данной процедуры sp_tab_utenti пробую: view dependencies в MS,
опрашиваю sql_dependencies и запускаю код от invm.
sql_dependencies не дает вообще ни одной вьюхи, view dependencies в MS показывает лишь часть вьюшек, код от invm вываливается с ошибкой,
т.к. в процедуре есть вьюха вида
select * from ttt
, из базовой таблицы ttt выкинули одно поле (fat_cnp), у меня нет ALTER VIEW...
капец.
из-за одной вьюхи не отдает остальные.
если бы не кривое определение вьюхи, самым приличным способом был бы код от invm,
а так тупик.
еще непонятно, а почему же сама студия по view dependencies не запускает этот код?
view dependencies не отдает ВСЕ вьюхи, ну и нафига такое надо?
а главное, я не нашла чем непоказываемые по view dependencies вьюхи хуже других.
никто не знает случайно, почему не все показывет?
еще раз оговорюсь, мне не надо вьюхи из динамики. просто упомянутые в селектах процедуры

К сообщению приложен файл. Размер - 62Kb
18 сен 12, 21:57    [13185285]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
beg_inner
Guest
еще. проапдэйтила сервер Экспресс и студию. оба теперь имеют версию 10.50.4000.0
но ошибка при нажатии view dependencies в студии для Экспресса никуда не делась, так и вылазит.
интересно, что та же студия при том же действии, но на процедуре с Enterprise-сервера ошибку не выдает,
а показывает зависимости(но не все).
только у меня нет ALTER TRACE на Enterprise-сервер, а есть только на Экспресс. и именно на процедуре с Экспресса ошибку вываливает, поэтому толку от профайлера 0.
выходит, дело не в студии, а в Экспресс-сервере?

вот еще картинка, где видно, как view dependencies в MS не все отдает.
в процедуре sp_tab_procedure есть явный селект из dbo.legproce, но view dependencies не показывает legproce.
почему???

К сообщению приложен файл. Размер - 88Kb
18 сен 12, 22:08    [13185332]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
beg_inner,

могу допилить тул на предмет дампа зависимостей объектов в xml (в принципе - давно надо было сделать)
18 сен 12, 22:21    [13185365]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
select
 o.name
from
 sys.sql_expression_dependencies d join
 sys.objects o on o.object_id = d.referenced_id
where
 d.referencing_id = object_id('dbo.sp_TAB_utenti', 'P') and
 d.referenced_minor_id = 0 and
 o.type = 'V';
?
18 сен 12, 22:25    [13185376]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
beg_inner
Guest
invm,

завтра попробую и отпишусь, спасибо.
а не подскажете, ну почему студийные-то зависимости не все отдают?
18 сен 12, 22:28    [13185387]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
так нормально было бы?
зависимости для AdventureWorks
+
<dependencies>
	<object type="U" name="dbo.AWBuildVersion">
	</object>
	<object type="U" name="dbo.DatabaseLog">
	</object>
	<object type="U" name="dbo.ErrorLog">
	</object>
	<object type="TR" name="dbo.uAWBuildVersion">
		<object type="U" name="dbo.AWBuildVersion"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="FN" name="dbo.ufnGetAccountingEndDate">
	</object>
	<object type="FN" name="dbo.ufnGetAccountingStartDate">
	</object>
	<object type="TF" name="dbo.ufnGetContactInformation">
		<object type="U" name="Person.Contact"/>
		<object type="U" name="HumanResources.Employee"/>
		<object type="U" name="Purchasing.VendorContact"/>
		<object type="U" name="Person.ContactType"/>
		<object type="U" name="Sales.StoreContact"/>
		<object type="U" name="Sales.Individual"/>
	</object>
	<object type="FN" name="dbo.ufnGetDocumentStatusText">
	</object>
	<object type="FN" name="dbo.ufnGetProductDealerPrice">
		<object type="U" name="Production.Product"/>
		<object type="U" name="Production.ProductListPriceHistory"/>
	</object>
	<object type="FN" name="dbo.ufnGetProductListPrice">
		<object type="U" name="Production.Product"/>
		<object type="U" name="Production.ProductListPriceHistory"/>
	</object>
	<object type="FN" name="dbo.ufnGetProductStandardCost">
		<object type="U" name="Production.Product"/>
		<object type="U" name="Production.ProductCostHistory"/>
	</object>
	<object type="FN" name="dbo.ufnGetPurchaseOrderStatusText">
	</object>
	<object type="FN" name="dbo.ufnGetSalesOrderStatusText">
	</object>
	<object type="FN" name="dbo.ufnGetStock">
		<object type="U" name="Production.ProductInventory"/>
	</object>
	<object type="FN" name="dbo.ufnLeadingZeros">
	</object>
	<object type="P" name="dbo.uspGetBillOfMaterials">
		<object type="U" name="Production.BillOfMaterials"/>
		<object type="U" name="Production.Product"/>
	</object>
	<object type="P" name="dbo.uspGetEmployeeManagers">
		<object type="U" name="HumanResources.Employee"/>
		<object type="U" name="Person.Contact"/>
	</object>
	<object type="P" name="dbo.uspGetManagerEmployees">
		<object type="U" name="HumanResources.Employee"/>
		<object type="U" name="Person.Contact"/>
	</object>
	<object type="P" name="dbo.uspGetWhereUsedProductID">
		<object type="U" name="Production.BillOfMaterials"/>
		<object type="U" name="Production.Product"/>
	</object>
	<object type="P" name="dbo.uspLogError">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="U" name="dbo.ErrorLog"/>
	</object>
	<object type="P" name="dbo.uspPrintError">
	</object>
	<object type="TR" name="HumanResources.dEmployee">
		<object type="U" name="deleted"/>
	</object>
	<object type="U" name="HumanResources.Department">
	</object>
	<object type="U" name="HumanResources.Employee">
	</object>
	<object type="U" name="HumanResources.EmployeeAddress">
	</object>
	<object type="U" name="HumanResources.EmployeeDepartmentHistory">
	</object>
	<object type="U" name="HumanResources.EmployeePayHistory">
	</object>
	<object type="U" name="HumanResources.JobCandidate">
	</object>
	<object type="U" name="HumanResources.Shift">
	</object>
	<object type="TR" name="HumanResources.uDepartment">
		<object type="U" name="HumanResources.Department"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="HumanResources.uEmployee">
		<object type="U" name="HumanResources.Employee"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="HumanResources.uEmployeeAddress">
		<object type="U" name="HumanResources.EmployeeAddress"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="HumanResources.uEmployeeDepartmentHistory">
		<object type="U" name="HumanResources.EmployeeDepartmentHistory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="HumanResources.uEmployeePayHistory">
		<object type="U" name="HumanResources.EmployeePayHistory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="HumanResources.uJobCandidate">
		<object type="U" name="HumanResources.JobCandidate"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="HumanResources.uShift">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="HumanResources.Shift"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="P" name="HumanResources.uspUpdateEmployeeHireInfo">
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="HumanResources.Employee"/>
		<object type="U" name="HumanResources.EmployeePayHistory"/>
	</object>
	<object type="P" name="HumanResources.uspUpdateEmployeeLogin">
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="HumanResources.Employee"/>
	</object>
	<object type="P" name="HumanResources.uspUpdateEmployeePersonalInfo">
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="HumanResources.Employee"/>
	</object>
	<object type="V" name="HumanResources.vEmployee">
		<object type="U" name="HumanResources.Employee"/>
		<object type="U" name="Person.Contact"/>
		<object type="U" name="HumanResources.EmployeeAddress"/>
		<object type="U" name="Person.Address"/>
		<object type="U" name="Person.StateProvince"/>
		<object type="U" name="Person.CountryRegion"/>
	</object>
	<object type="V" name="HumanResources.vEmployeeDepartment">
		<object type="U" name="HumanResources.Employee"/>
		<object type="U" name="Person.Contact"/>
		<object type="U" name="HumanResources.EmployeeDepartmentHistory"/>
		<object type="U" name="HumanResources.Department"/>
	</object>
	<object type="V" name="HumanResources.vEmployeeDepartmentHistory">
		<object type="U" name="HumanResources.Employee"/>
		<object type="U" name="Person.Contact"/>
		<object type="U" name="HumanResources.EmployeeDepartmentHistory"/>
		<object type="U" name="HumanResources.Department"/>
		<object type="U" name="HumanResources.Shift"/>
	</object>
	<object type="V" name="HumanResources.vJobCandidate">
		<object type="U" name="HumanResources.JobCandidate"/>
	</object>
	<object type="V" name="HumanResources.vJobCandidateEducation">
		<object type="U" name="HumanResources.JobCandidate"/>
	</object>
	<object type="V" name="HumanResources.vJobCandidateEmployment">
		<object type="U" name="HumanResources.JobCandidate"/>
	</object>
	<object type="U" name="Person.Address">
	</object>
	<object type="U" name="Person.AddressType">
	</object>
	<object type="U" name="Person.Contact">
	</object>
	<object type="U" name="Person.ContactType">
	</object>
	<object type="U" name="Person.CountryRegion">
	</object>
	<object type="U" name="Person.StateProvince">
	</object>
	<object type="TR" name="Person.uAddress">
		<object type="U" name="Person.Address"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Person.uAddressType">
		<object type="U" name="Person.AddressType"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Person.uContact">
		<object type="U" name="Person.Contact"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Person.uContactType">
		<object type="U" name="Person.ContactType"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Person.uCountryRegion">
		<object type="U" name="Person.CountryRegion"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Person.uStateProvince">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Person.StateProvince"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="V" name="Person.vAdditionalContactInfo">
		<object type="U" name="Person.Contact"/>
	</object>
	<object type="V" name="Person.vStateProvinceCountryRegion">
		<object type="U" name="Person.StateProvince"/>
		<object type="U" name="Person.CountryRegion"/>
	</object>
	<object type="U" name="Production.BillOfMaterials">
	</object>
	<object type="U" name="Production.Culture">
	</object>
	<object type="U" name="Production.Document">
	</object>
	<object type="U" name="Production.Illustration">
	</object>
	<object type="TR" name="Production.iWorkOrder">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Production.TransactionHistory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="U" name="Production.Location">
	</object>
	<object type="U" name="Production.Product">
	</object>
	<object type="U" name="Production.ProductCategory">
	</object>
	<object type="U" name="Production.ProductCostHistory">
	</object>
	<object type="U" name="Production.ProductDescription">
	</object>
	<object type="U" name="Production.ProductDocument">
	</object>
	<object type="U" name="Production.ProductInventory">
	</object>
	<object type="U" name="Production.ProductListPriceHistory">
	</object>
	<object type="U" name="Production.ProductModel">
	</object>
	<object type="U" name="Production.ProductModelIllustration">
	</object>
	<object type="U" name="Production.ProductModelProductDescriptionCulture">
	</object>
	<object type="U" name="Production.ProductPhoto">
	</object>
	<object type="U" name="Production.ProductProductPhoto">
	</object>
	<object type="U" name="Production.ProductReview">
	</object>
	<object type="U" name="Production.ProductSubcategory">
	</object>
	<object type="U" name="Production.ScrapReason">
	</object>
	<object type="U" name="Production.TransactionHistory">
	</object>
	<object type="U" name="Production.TransactionHistoryArchive">
	</object>
	<object type="TR" name="Production.uBillOfMaterials">
		<object type="U" name="Production.BillOfMaterials"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uCulture">
		<object type="U" name="Production.Culture"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uDocument">
		<object type="U" name="Production.Document"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uIllustration">
		<object type="U" name="Production.Illustration"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uLocation">
		<object type="U" name="Production.Location"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="U" name="Production.UnitMeasure">
	</object>
	<object type="TR" name="Production.uProduct">
		<object type="U" name="Production.Product"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductCategory">
		<object type="U" name="Production.ProductCategory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductCostHistory">
		<object type="U" name="Production.ProductCostHistory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductDescription">
		<object type="U" name="Production.ProductDescription"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductDocument">
		<object type="U" name="Production.ProductDocument"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductInventory">
		<object type="U" name="Production.ProductInventory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductListPriceHistory">
		<object type="U" name="Production.ProductListPriceHistory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductModel">
		<object type="U" name="Production.ProductModel"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductModelIllustration">
		<object type="U" name="Production.ProductModelIllustration"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductModelProductDescriptionCulture">
		<object type="U" name="Production.ProductModelProductDescriptionCulture"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductPhoto">
		<object type="U" name="Production.ProductPhoto"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductProductPhoto">
		<object type="U" name="Production.ProductProductPhoto"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductReview">
		<object type="U" name="Production.ProductReview"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uProductSubcategory">
		<object type="U" name="Production.ProductSubcategory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uScrapReason">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Production.ScrapReason"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uTransactionHistory">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Production.TransactionHistory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uTransactionHistoryArchive">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Production.TransactionHistoryArchive"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uUnitMeasure">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Production.UnitMeasure"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Production.uWorkOrder">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Production.TransactionHistory"/>
		<object type="U" name="inserted"/>
		<object type="U" name="Production.WorkOrder"/>
	</object>
	<object type="TR" name="Production.uWorkOrderRouting">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Production.WorkOrderRouting"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="V" name="Production.vProductAndDescription">
		<object type="U" name="Production.Product"/>
		<object type="U" name="Production.ProductModel"/>
		<object type="U" name="Production.ProductModelProductDescriptionCulture"/>
		<object type="U" name="Production.ProductDescription"/>
	</object>
	<object type="V" name="Production.vProductModelCatalogDescription">
		<object type="U" name="Production.ProductModel"/>
	</object>
	<object type="V" name="Production.vProductModelInstructions">
		<object type="U" name="Production.ProductModel"/>
	</object>
	<object type="U" name="Production.WorkOrder">
	</object>
	<object type="U" name="Production.WorkOrderRouting">
	</object>
	<object type="TR" name="Purchasing.dVendor">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="deleted"/>
	</object>
	<object type="TR" name="Purchasing.iPurchaseOrderDetail">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Production.TransactionHistory"/>
		<object type="U" name="inserted"/>
		<object type="U" name="Purchasing.PurchaseOrderHeader"/>
		<object type="U" name="Purchasing.PurchaseOrderDetail"/>
	</object>
	<object type="U" name="Purchasing.ProductVendor">
	</object>
	<object type="U" name="Purchasing.PurchaseOrderDetail">
	</object>
	<object type="U" name="Purchasing.PurchaseOrderHeader">
	</object>
	<object type="U" name="Purchasing.ShipMethod">
	</object>
	<object type="TR" name="Purchasing.uProductVendor">
		<object type="U" name="Purchasing.ProductVendor"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Purchasing.uPurchaseOrderDetail">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Production.TransactionHistory"/>
		<object type="U" name="inserted"/>
		<object type="U" name="Purchasing.PurchaseOrderDetail"/>
		<object type="U" name="Purchasing.PurchaseOrderHeader"/>
	</object>
	<object type="TR" name="Purchasing.uPurchaseOrderHeader">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Purchasing.PurchaseOrderHeader"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Purchasing.uShipMethod">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Purchasing.ShipMethod"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Purchasing.uVendor">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Purchasing.Vendor"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Purchasing.uVendorAddress">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Purchasing.VendorAddress"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Purchasing.uVendorContact">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Purchasing.VendorContact"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="U" name="Purchasing.Vendor">
	</object>
	<object type="U" name="Purchasing.VendorAddress">
	</object>
	<object type="U" name="Purchasing.VendorContact">
	</object>
	<object type="V" name="Purchasing.vVendor">
		<object type="U" name="Purchasing.Vendor"/>
		<object type="U" name="Purchasing.VendorContact"/>
		<object type="U" name="Person.Contact"/>
		<object type="U" name="Person.ContactType"/>
		<object type="U" name="Purchasing.VendorAddress"/>
		<object type="U" name="Person.Address"/>
		<object type="U" name="Person.StateProvince"/>
		<object type="U" name="Person.CountryRegion"/>
	</object>
	<object type="U" name="Sales.ContactCreditCard">
	</object>
	<object type="U" name="Sales.CountryRegionCurrency">
	</object>
	<object type="U" name="Sales.CreditCard">
	</object>
	<object type="U" name="Sales.Currency">
	</object>
	<object type="U" name="Sales.CurrencyRate">
	</object>
	<object type="U" name="Sales.Customer">
	</object>
	<object type="U" name="Sales.CustomerAddress">
	</object>
	<object type="TR" name="Sales.iduSalesOrderDetail">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Production.TransactionHistory"/>
		<object type="U" name="inserted"/>
		<object type="U" name="Sales.SalesOrderHeader"/>
		<object type="U" name="Sales.Individual"/>
		<object type="U" name="Sales.SalesOrderDetail"/>
		<object type="U" name="deleted"/>
	</object>
	<object type="U" name="Sales.Individual">
	</object>
	<object type="TR" name="Sales.iStore">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="inserted"/>
		<object type="U" name="Sales.Individual"/>
	</object>
	<object type="TR" name="Sales.iuIndividual">
		<object type="U" name="inserted"/>
		<object type="U" name="Sales.Store"/>
		<object type="U" name="Sales.Individual"/>
	</object>
	<object type="U" name="Sales.SalesOrderDetail">
	</object>
	<object type="U" name="Sales.SalesOrderHeader">
	</object>
	<object type="U" name="Sales.SalesOrderHeaderSalesReason">
	</object>
	<object type="U" name="Sales.SalesPerson">
	</object>
	<object type="U" name="Sales.SalesPersonQuotaHistory">
	</object>
	<object type="U" name="Sales.SalesReason">
	</object>
	<object type="U" name="Sales.SalesTaxRate">
	</object>
	<object type="U" name="Sales.SalesTerritory">
	</object>
	<object type="U" name="Sales.SalesTerritoryHistory">
	</object>
	<object type="U" name="Sales.ShoppingCartItem">
	</object>
	<object type="U" name="Sales.SpecialOffer">
	</object>
	<object type="U" name="Sales.SpecialOfferProduct">
	</object>
	<object type="U" name="Sales.Store">
	</object>
	<object type="U" name="Sales.StoreContact">
	</object>
	<object type="TR" name="Sales.uContactCreditCard">
		<object type="U" name="Sales.ContactCreditCard"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uCountryRegionCurrency">
		<object type="U" name="Sales.CountryRegionCurrency"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uCreditCard">
		<object type="U" name="Sales.CreditCard"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uCurrency">
		<object type="U" name="Sales.Currency"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uCurrencyRate">
		<object type="U" name="Sales.CurrencyRate"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uCustomer">
		<object type="U" name="Sales.Customer"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uCustomerAddress">
		<object type="U" name="Sales.CustomerAddress"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uSalesOrderHeader">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="FN" name="dbo.ufnGetAccountingStartDate"/>
		<object type="FN" name="dbo.ufnGetAccountingEndDate"/>
		<object type="U" name="Sales.SalesOrderHeader"/>
		<object type="U" name="inserted"/>
		<object type="U" name="Sales.SalesPerson"/>
		<object type="U" name="Sales.SalesTerritory"/>
	</object>
	<object type="TR" name="Sales.uSalesOrderHeaderSalesReason">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.SalesOrderHeaderSalesReason"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uSalesPerson">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.SalesPerson"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uSalesPersonQuotaHistory">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.SalesPersonQuotaHistory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uSalesReason">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.SalesReason"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uSalesTaxRate">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.SalesTaxRate"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uSalesTerritory">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.SalesTerritory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uSalesTerritoryHistory">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.SalesTerritoryHistory"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uShoppingCartItem">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.ShoppingCartItem"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uSpecialOffer">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.SpecialOffer"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uSpecialOfferProduct">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.SpecialOfferProduct"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uStore">
		<object type="P" name="dbo.uspPrintError"/>
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.Store"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="TR" name="Sales.uStoreContact">
		<object type="P" name="dbo.uspLogError"/>
		<object type="U" name="Sales.StoreContact"/>
		<object type="U" name="inserted"/>
	</object>
	<object type="V" name="Sales.vIndividualCustomer">
		<object type="U" name="Sales.Individual"/>
		<object type="U" name="Person.Contact"/>
		<object type="U" name="Sales.CustomerAddress"/>
		<object type="U" name="Person.Address"/>
		<object type="U" name="Person.StateProvince"/>
		<object type="U" name="Person.CountryRegion"/>
		<object type="U" name="Person.AddressType"/>
		<object type="U" name="Sales.Customer"/>
	</object>
	<object type="V" name="Sales.vIndividualDemographics">
		<object type="U" name="Sales.Individual"/>
	</object>
	<object type="V" name="Sales.vSalesPerson">
		<object type="U" name="Sales.SalesPerson"/>
		<object type="U" name="HumanResources.Employee"/>
		<object type="U" name="Sales.SalesTerritory"/>
		<object type="U" name="Person.Contact"/>
		<object type="U" name="HumanResources.EmployeeAddress"/>
		<object type="U" name="Person.Address"/>
		<object type="U" name="Person.StateProvince"/>
		<object type="U" name="Person.CountryRegion"/>
	</object>
	<object type="V" name="Sales.vSalesPersonSalesByFiscalYears">
		<object type="U" name="Sales.SalesPerson"/>
		<object type="U" name="Sales.SalesOrderHeader"/>
		<object type="U" name="Sales.SalesTerritory"/>
		<object type="U" name="HumanResources.Employee"/>
		<object type="U" name="Person.Contact"/>
	</object>
	<object type="V" name="Sales.vStoreWithDemographics">
		<object type="U" name="Sales.Store"/>
		<object type="U" name="Sales.StoreContact"/>
		<object type="U" name="Person.Contact"/>
		<object type="U" name="Person.ContactType"/>
		<object type="U" name="Sales.CustomerAddress"/>
		<object type="U" name="Person.Address"/>
		<object type="U" name="Person.StateProvince"/>
		<object type="U" name="Person.CountryRegion"/>
		<object type="U" name="Person.AddressType"/>
		<object type="U" name="Sales.Customer"/>
	</object>
</dependencies>
18 сен 12, 22:37    [13185438]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
beg_inner
invm,

завтра попробую и отпишусь, спасибо.
а не подскажете, ну почему студийные-то зависимости не все отдают?
В отличии от sys.sql_expression_dependencies, в sys.sql_dependencies не будут отражаться зависимости, если упоминаемый объект создан позже зависимого. Ну и sys.sql_dependencies объявлен как deprecated.
18 сен 12, 23:04    [13185555]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
beg_inner
а не подскажете, ну почему студийные-то зависимости не все отдают?
Уже писали выше.
CREATE A -> CREATE B (USE A) -> ALTER A
То всё, зависимость потерялась. ALTER уничтожает старые зависимости.
Не все вещи есть зависимости. Если опущена схема - то это динамическая зависимость.
Только опция SCHEMABINDING гарантирует наличие (в системных представлениях).
Тулзы (SSMS UI) могут показать что-то большее, но они глючат и это не исправляют. У меня вообще есть базы на которых SSMS падает если открывать Dependency. GUI можно смело послать наGUI. :)
M$ работает, поверьте, но медленно. Была вообще хрень полная.
Кстати, если хотите что-бы хоть что-то двигалось - ищите и регайте ошибки на connect.microsoft.com

Есть и сторонние приложения, лучше работает - и графы показывают ...
Вот такие дела.
18 сен 12, 23:17    [13185598]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
beg_inner
Guest
locky,
да. можете такое подарить?

invm, Mnior
спасибо, теперь прояснилось.
19 сен 12, 00:30    [13185795]     Ответить | Цитировать Сообщить модератору
 Re: вытащить упоминания вьюшек из процедуры  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
beg_inner,

http://www.sqlcodeguard.com/downloads/SqlCodeGuard.test.msi
установить->ssms->Выбрать в object explorer базу->tools->Show dependencies->Build dependencies->conext menu->Dump dependencies
Билд толком не провереный, в некоторых местах может отпадать, но зависимости должны строится нормально
19 сен 12, 00:38    [13185802]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить