powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / OBJECT_DEFINITION возвращает только часть кода
18 сообщений из 18, страница 1 из 1
OBJECT_DEFINITION возвращает только часть кода
    #39642005
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу запросить текст вью:

Код: sql
1.
SELECT OBJECT_DEFINITION (OBJECT_ID(N'dbo.v_ps_value')) AS [Definition]; 



Возвращает только часть текста, т.е.

Код: sql
1.
2.
3.
4.
5.
6.
7.
create  VIEW [dbo].[v_ps_value]
AS
SELECT	property.id,
		property.descriptor_id,
		property.owner_id,
		property_value.value as value
FROM	dbo.property INNER JOIN	 dbo.property_value 



там еще есть on ...=.. и т.д.

Что не так?
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642018
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотрите в ssms в гриде?
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642024
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увеличение длины вывода в опциях ssms не помогает?
Tools -> Options... -> Query Results -> SQL Server -> Results to... -> Maximum Characters...
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642025
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дедушкасмотрите в ssms в гриде?

и в гриде, и в тексте.
Там и длина <200 символов
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642027
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

если знаете, что вам хватит 64к измените дефолтное значение в настройках редактора
если нужно больше стандартный способ конвертить в xml
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642028
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что возвращает
Код: sql
1.
SELECT LEN(OBJECT_DEFINITION (OBJECT_ID(N'dbo.v_ps_value')) AS [Definition]);

?
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642034
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapЧто возвращает
Код: sql
1.
SELECT LEN(OBJECT_DEFINITION (OBJECT_ID(N'dbo.v_ps_value')) AS [Definition]);

?

299
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642048
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДедушкаРолг Хупин,

если знаете, что вам хватит 64к измените дефолтное значение в настройках редактора
если нужно больше стандартный способ конвертить в xml
Поддерживаю мнение кошерной ссылкой .
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642292
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andy_OLAPДедушкаРолг Хупин,

если знаете, что вам хватит 64к измените дефолтное значение в настройках редактора
если нужно больше стандартный способ конвертить в xml
Поддерживаю мнение кошерной ссылкой .


по "кошерной" ссылке копипастнул пример
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
---------
DECLARE @procdefn varchar(MAX); 
SET @procdefn =  'CREATE PROCEDURE dbo.prc_LongStringLength
AS
BEGIN
                                SELECT LEN(''' + REPLICATE ( CAST('<' AS varchar(MAX)), 65535) + ''');
END' ; 
EXEC ( @procdefn ); 
SELECT OBJECT_DEFINITION(OBJECT_ID('dbo.prc_LongStringLength')) AS [XML_F52E2B61-18A1-11d1-B105-00805F49916B];
------------
CREATE PROCEDURE dbo.prc_LongStringLength
AS
BEGIN
                                SELECT LEN('<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<




Тоже криво.
Что не так?
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642315
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

Results to Text(Ctrl-T)
Код: sql
1.
exec sp_helptext 'dbo.View'


?
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642319
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_humanРолг Хупин,

Results to Text(Ctrl-T)
Код: sql
1.
exec sp_helptext 'dbo.View'


?

всунул ту тестовую процедуру (из пред. поста) - выдала полностью, нормально.


Но мне надо в переменную, затем заменить CREATE на ALTER, нашел такое, но снова выдает только кусок процедуры

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
DECLARE
   @objName nvarchar(256);
SET @objName = N'dbo.prc_LongStringLength';
/* Script out objects if they exist*/
IF  EXISTS (SELECT *
              FROM sys.objects
              WHERE object_id
                    =
                    OBJECT_ID(@objName)
                AND type IN (N'FN', N'IF', N'TF', N'FS', N'FT',N'P'))
    BEGIN
        DECLARE
           @t TABLE(line nvarchar(max))
    END;
INSERT INTO @t
EXEC sp_helptext @objName;
DECLARE
   @ddl nvarchar(max);
SELECT @ddl = '';
/* Change CREATE to ALTER because this object all ready exists */
SELECT @ddl = @ddl + REPLACE(line, 'CREATE procedure', 'ALTER PROCEDURE')
  FROM @t;
PRINT @ddl;
GO
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642322
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но что интересно:
PRINT len(@ddl);--65640
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642330
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

если у вас есть исходнІье файлІь с обьектами бд
возможно будет проще сделать ето в PowerShell/C#
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642331
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_human,

+
Код: sql
1.
2.
select definition from sys.sql_modules
where object_id = object_id(dbo.View')
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642396
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_humanРолг Хупин,

если у вас есть исходнІье файлІь с обьектами бд
возможно будет проще сделать ето в PowerShell/C#

не, это не проходит, надо по живой базе, тем более, их может быть несколько
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642417
iii2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может там есть какие-то непечатные символы, типа bs или ff?
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642558
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iii2Может там есть какие-то непечатные символы, типа bs или ff?

В примере выше (prc_LongStringLength) нету каких-то стремных символов
...
Рейтинг: 0 / 0
OBJECT_DEFINITION возвращает только часть кода
    #39642811
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинAndy_OLAPпропущено...

Поддерживаю мнение кошерной ссылкой .


по "кошерной" ссылке копипастнул пример
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
---------
DECLARE @procdefn varchar(MAX); 
SET @procdefn =  'CREATE PROCEDURE dbo.prc_LongStringLength
AS
BEGIN
                                SELECT LEN(''' + REPLICATE ( CAST('<' AS varchar(MAX)), 65535) + ''');
END' ; 
EXEC ( @procdefn ); 
SELECT OBJECT_DEFINITION(OBJECT_ID('dbo.prc_LongStringLength')) AS [XML_F52E2B61-18A1-11d1-B105-00805F49916B];
------------
CREATE PROCEDURE dbo.prc_LongStringLength
AS
BEGIN
                                SELECT LEN('<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<




Тоже криво.
Что не так?

Попробуйте волшебным образом.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
DECLARE @procdefn varchar(MAX); 
SET @procdefn = '' -- таки да, пусть будет пустым
SET @procdefn  = @procdefn + convert(nvarchar(MAX),'CREATE PROCEDURE dbo.prc_LongStringLength
AS
BEGIN
                                SELECT LEN(''' + REPLICATE ( CAST('<' AS varchar(MAX)), 65535) + ''');
END') ; 
-- а вот теперь усекаться не должно
EXEC ( @procdefn ); 
-- ну и проверить можно
SELECT OBJECT_DEFINITION(OBJECT_ID('dbo.prc_LongStringLength')) AS [XML_F52E2B61-18A1-11d1-B105-00805F49916B];
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / OBJECT_DEFINITION возвращает только часть кода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]