powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка SSIS и SEQUENCE
11 сообщений из 11, страница 1 из 1
Ошибка SSIS и SEQUENCE
    #39179769
Компостеров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги,
кто нибудь сталкивался со следующей проблемой:


Есть таблица с ключем f_id numeric(18,0) CONSTRAINT DF_id DEFAULT NEXT VALUE FOR [f_Id] NOT NUL

При загрузке данных через SSIS выдается ошибка:
[Назначение "OLE DB" [192]] Ошибка: Код ошибки служб SSIS: DTS_E_OLEDBERROR. Возникла ошибка OLE DB. Код ошибки: 0x80004005.
Доступна запись OLE DB. Источник: "Microsoft SQL Server Native Client 11.0" Результат: 0x80004005 Описание: "Выполнение данной инструкции было прервано.".
Доступна запись OLE DB. Источник: "Microsoft SQL Server Native Client 11.0" Результат: 0x80004005 Описание: "Внимание! Произошла неустранимая ошибка 217 в фев 26 2016 1:08PM. Запомните ошибку и время, когда она произошла, и обратитесь к системному администратору.".

В логе сервера выдается сообщение:
2016-02-26 13:08:38.82 spid61 Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 2).

На таблице нет никаких триггеров.

Если ключ в таблице заменить на IDENTITY – все работает.

Как можно обойти проблему работы SSIS с SEQUENCE ?
...
Рейтинг: 0 / 0
Ошибка SSIS и SEQUENCE
    #39179806
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версию сервера хоть озвучьте.
...
Рейтинг: 0 / 0
Ошибка SSIS и SEQUENCE
    #39179841
Компостеров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2012 sp3
...
Рейтинг: 0 / 0
Ошибка SSIS и SEQUENCE
    #39179862
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компостеров2012 sp3
а какие опции выставлены у bulk-а? Там что-то было про констрейнты.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Ошибка SSIS и SEQUENCE
    #39560216
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулись с подобным явлением на версии 2014 SP1.

С клиента вызывается хранимая процедура, в ней формируется динамический SQL, в котором идет обращение к NEXT VALUE SEQUENCE. То есть уровней вложенности кот наплакал, никакой рекурсии. И вот иногда, нерегулярно, может один на тысячу раз, выдается ошибка:

Warning: Fatal error 217 occurred at %дата%. Note the error and time, and contact your system administrator.

В логе пишется:

No Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 2).

В скобках именно (limit 2), а не 32, как бывает обычно при превышении уровня вложенности.

Кто сталкивался? Кто знает, как побороть?
...
Рейтинг: 0 / 0
Ошибка SSIS и SEQUENCE
    #39560232
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, в try/catch с ретраем оберните, если уверены, что нигде глуюину рекурсии не ограничиваете.
...
Рейтинг: 0 / 0
Ошибка SSIS и SEQUENCE
    #39569535
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ нашелся.

Дело в том, что системе, в совершенно другом месте, в одном из отчетов, программисты влепили опцию SET ROWCOUNT 100000, а обратно в 0 вернуть забыли.

И если пользователь в ходе работы делал этот отчет, а затем возвращался к добавлению записей, где идет обращение к SEQUENCE, то получал ошибку.

Дело в том, что согласно документации, обращение к SEQUENCE (NEXT VALUE FOR...) не работает, если установлено SET ROWCOUNT:

Limitations and RestrictionsThe NEXT VALUE FOR function cannot be used in the following situations:

In a statement using TOP, OFFSET, or when the ROWCOUNT option is set.



А подлость в том, что у старых SQL-серверов в этой ситуации выдается ошибочное сообщение об ошибке.

Скрипт для воспроизведения:

Код: sql
1.
2.
3.
4.
5.
set rowcount 0;
create sequence SEQ_TEST start with 1;
select next value for SEQ_TEST; -- 1
set rowcount 1000;
select next value for SEQ_TEST; -- Error



Сравните выполнение на разных версиях:

Сообщение об ошибке нормального сервера:

Microsoft SQL Server 2014 - 12.0.2269.0 (X64)NEXT VALUE FOR function cannot be used if ROWCOUNT option has been set, or the query contains TOP or OFFSET.

Сообщение об ошибке курильщика:

Microsoft SQL Server 2014 - 12.0.2000.8 (X64)Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 2).
...
Рейтинг: 0 / 0
Ошибка SSIS и SEQUENCE
    #39569564
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisher,

уровень совместимости стоит 100
...
Рейтинг: 0 / 0
Ошибка SSIS и SEQUENCE
    #39569570
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ошибка SSIS и SEQUENCE
    #39569575
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123,
при совместимости 100 и меньше валится в хлам. 110+ NEXT VALUE FOR function cannot be used if ROWCOUNT option has been set, or the query contains TOP or OFFSET.
...
Рейтинг: 0 / 0
Ошибка SSIS и SEQUENCE
    #39569580
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да.
это именно на базе с совместимостью 100
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка SSIS и SEQUENCE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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