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

Откуда: Киев
Сообщений: 2611
Добрый день.

Как можно получить полный листинг представления из
select TOP 1  view_definition
from INFORMATION_SCHEMA.VIEWS i
where table_name= имя таблицы

view_definition выдает только 4000 символов, нужен полный листинг


Так
select TOP 1  CAST(view_definition as varchar(max)) 
from INFORMATION_SCHEMA.VIEWS i
where table_name= имя таблицы

и так
Так
select TOP 1  CAST(view_definition as ntext) 
from INFORMATION_SCHEMA.VIEWS i
where table_name= имя таблицы

не дает результата
26 июл 11, 11:34    [11026962]     Ответить | Цитировать Сообщить модератору
 Re: Как получить полный текст представления ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
А TOP 1 зачем ?
26 июл 11, 11:39    [11027026]     Ответить | Цитировать Сообщить модератору
 Re: Как получить полный текст представления ?  [new]
Andrey1306
Member

Откуда: Киев
Сообщений: 2611
Glory
А TOP 1 зачем ?

Это кусок кода нужно получить все объекты на которые "ссылается" данный
полный текст такой
select name,xtype from INFORMATION_SCHEMA.VIEWS i, [adm_SysObject] o  
where upper(replace(view_definition,char(13),' ')) 
like '%[ .[]'+upper(o.name)+'[ (|]]%' ESCAPE '|' 
and table_name<>o.name  and table_name='expAC_PayReklama')
26 июл 11, 11:43    [11027060]     Ответить | Цитировать Сообщить модератору
 Re: Как получить полный текст представления ?  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Andrey1306,

declare @a nvarchar(max)

select top(1) @a = sm.definition
from sys.views sv
join sys.sql_modules sm on sv.object_id = sm.object_id
where LEN(sm.definition) > 4000

print len(@a)
print @a -- тут распечатает не всё, но это ограничения студии
26 июл 11, 11:48    [11027111]     Ответить | Цитировать Сообщить модератору
 Re: Как получить полный текст представления ?  [new]
Andrey1306
Member

Откуда: Киев
Сообщений: 2611
Спасибо.
26 июл 11, 13:59    [11028099]     Ответить | Цитировать Сообщить модератору
 Re: Как получить полный текст представления ?  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Andrey1306,

DECLARE @ssql NVARCHAR(MAX)
SET @ssql='CREATE VIEW dbo.TEST AS'+CHAR(13)+CHAR(10)
SET @ssql=@ssql+CHAR(13)+CHAR(10)+REPLICATE('--123456789',10000)
SET @ssql=@ssql+CHAR(13)+CHAR(10)+'SELECT 123456789 test'
SET @ssql=@ssql+CHAR(13)+CHAR(10)+REPLICATE('--987654321',10000)
SET @ssql=@ssql+CHAR(13)+CHAR(10)+'UNION ALL SELECT 987654321'
PRINT @ssql
EXEC(@ssql)
go

SELECT * FROM dbo.TEST

-- Нажать CTRL+T
select sm.definition
from sys.views sv
join sys.sql_modules sm on sv.object_id = sm.object_id

-- А терь так:
-- Кстати, ничего не мешает поглядеть, как sp_helptext устроена внутрях :)
EXEC sp_helptext 'dbo.TEST'
go

DROP VIEW dbo.TEST
GO


К сообщению приложен файл. Размер - 52Kb
26 июл 11, 14:52    [11028606]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить