список таблиц участвующих в VIEW
MIP
Дата: 11.10.2003 15:16:20
Подскажите,
как получить список таблиц которые участвуют в VIEW.
Команда sp_depends возвращает почемуто не все таблицы.
Заранее спасибо.
iSestrin
Дата: 11.10.2003 19:14:28
sp_refreshview
MIP
Дата: 12.10.2003 00:26:10
sp_refresview, я попробовал в QueryAnalizer, там не возвращает никаких списков и таблиц, на этом же форуме прочитал, что
sp_refresview для перекомпиляции VIEW.
Мне нужно создать просто интерфейс, для создания VIEW в MS SQL (как приложение к моей проге), то есть типа вещей.. OPEN VIEW (появляется список), потом все таблицы кидаю в свой DATABASE DESKTOP, a там уже позволяю пользователю редактировать дальше VIEW.
Так вот, как же получить список всех таблиц которые были во VIEW?
спасибо.
MIP
Дата: 12.10.2003 00:29:11
В принципе, можно выловить все таблицы из списка SQL запроса (sp_helptext), но как то так не очень хочется делать. Наверняка существует более простой способ.
Glory
Дата: 12.10.2003 00:43:27
sp_refreshview - Refreshes the metadata for the specified view.
Persistent metadata for a view can become outdated because of changes to the underlying objects upon which the view depends.
Т.е. если sp_depends возвращает неверные данные из-за того, что объекты на основе которых и было построено представление изменились, то sp_refreshview как раз и исправит эти "недорузамения"
use tempdb
go
if object_id('dbo.t1') is not null drop table dbo.t1
go
if object_id('dbo.t2') is not null drop table dbo.t2
go
if object_id('dbo.vw1') is not null drop view dbo.vw1
go
create table dbo.t1 (f1 int)
go
create table dbo.t2 (f2 int)
go
create view dbo.vw1 as
select * from dbo.t1 cross join dbo.t2
go
exec sp_depends 'dbo.vw1'
go
if object_id('dbo.t2') is not null drop table dbo.t2
go
exec sp_depends 'dbo.vw1'
go
create table dbo.t2 (f3 int)
go
exec sp_depends 'dbo.vw1'
go
exec sp_refreshview 'dbo.vw1'
exec sp_depends 'dbo.vw1'
go |
|
MIP
Дата: 12.10.2003 01:06:20
спасибо за помощь
да, sp_depends возвращает все правильно, если вызвать до нее sp_refreshview, я просто тестировал свой DESKTOP, попробовал составить VIEW когда
SELECT dbo.G1.id, dbo.DA1.DA1, dbo.PA2.PA1, dbo.PA2.PA2, dbo.PA2.PA_FK, dbo.G1.FK
FROM dbo.G1 INNER JOIN
dbo.PA2 ON dbo.G1.FK = dbo.PA2.id INNER JOIN
dbo.DA1 ON dbo.PA2.PA_FK = dbo.DA1.id
то есть G1->PA2->DA1 такая связь, sp_depends вернула только G1 и DA1, то же она делала и в других случаях. Теперь вроде нормально все.
ququ
Дата: 12.10.2003 10:23:23
2 All
Кто-нибудь использует для подобных целей Information Schema Views?
Просто любопытно.
Александр Гладченко
Дата: 12.10.2003 16:41:40
Использование представлений информационной схемы для подобных целей описано в 165-м выпуске рассылки, который был отправлен подписчикам сегодня.
ququ
Дата: 12.10.2003 17:07:18
2 Александр Гладченко
Похоже что полезная рассылка будет. Надо подписаться.
А то не удавалось встретить "в живую" тех, кто этим (ISV) пользуется. :-)
MIP
Дата: 13.10.2003 00:59:24
спасибо :)
INFORMATION_SCHEMA тоже интрестная вещь