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

Откуда: Екб
Сообщений: 1237
Доброго времени суток! Вот такой вопрос, в хранимке выполяются некие действия, в т.ч. вызывающие триггера, а возможно и другие хранимки, но в конце возвращается результат (селект из таблички или например банально select @err1 err). Есть ли сделать так, чтоб на клиент в рекордсет уходил только вот этот последний запрос (подавить все, что может вылезти в триггерах и т.д.)?
Всмысле, если например в триггере поставить чтото вроде if .... select 'test', во время отладки и не убрать, то потом можно долго ловить плавающую ошибку.
19 мар 14, 14:04    [15752740]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Нельзя так сделать.
19 мар 14, 14:17    [15752822]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Гавриленко Сергей Алексеевич
Нельзя так сделать.
Ну почему?
Можно же триггеры привести в порядок и почистить
19 мар 14, 14:19    [15752834]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
iap
Ну почему?
Можно же триггеры привести в порядок и почистить

ну так это не будет "подавить все, что может вылезти в триггерах и т.д". Это будет "оставить только один select"
19 мар 14, 14:21    [15752855]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
denis_viktorovich
Всмысле, если например в триггере поставить чтото вроде if .... select 'test', во время отладки и не убрать
1. Хорошо что валится - всё дерьмецо заставляет вычистить. Обожаю когда система критически неустойчива. Вписал какашку, а тебе хрясь, обухом по затылку.
Шаг влево, шаг в право и система тебя расстреляла из всех констреинтов.
2. Не занимайтесь ерундой. Я поэтому сразу ставлю
exec sp_configure 'show advanced options',1
RECONFIGURE
exec sp_configure 'disallow results from triggers',1
RECONFIGURE
Пользуйтесь трейсом. Старайтесь предсказывать в голове. Привычка видеть всегда всё в промежутке не даёт развитие в представлении целостной картины в голове. Разбирайтесь в декларативном программировании.
Я вот привык к подсказкам кода, а вот без них не могу написать нормально и пару строк. А некоторые и синтаксис весь помнят, и все функции, и параметры, а не только обзорно-смысловое.
21 мар 14, 02:06    [15763589]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
автор
Параметр конфигурации сервера «disallow results from triggers»
В следующей версии Microsoft SQL Server эта возможность будет удалена.

Так что конюшни стоит почистить.
21 мар 14, 11:12    [15764657]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Владислав Колосов
автор
Параметр конфигурации сервера «disallow results from triggers»
В следующей версии Microsoft SQL Server эта возможность будет удалена.

Так что конюшни стоит почистить.
Она будет удалена потому, что «disallow results from triggers» будет действовать всегда.
То есть из триггера не будут возвращаться датасеты хоть пиши SELECT или PRINT в триггере, хоть не пиши.
Так что и чистить ничего не надо.

Или я неправильно понимаю и будут сообщения об ошибке в триггере?
Не может быть - это сколько же переписывать придётся!
21 мар 14, 11:40    [15764941]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Честно сказать, никаких комментариев на этот счет не увидел. Они писали, что намереваются удалить поддержку SOAP или ODBC, например, но воз и ныне там (хотя это вещи иного порядка). Ну или хотя бы тип TEXT/NTEXT.
21 мар 14, 12:25    [15765380]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Владислав Колосов
Честно сказать, никаких комментариев на этот счет не увидел. Они писали, что намереваются удалить поддержку SOAP или ODBC, например, но воз и ныне там (хотя это вещи иного порядка). Ну или хотя бы тип TEXT/NTEXT.
Общие соглашения о триггерах
Возвращаемые результаты

Возможность возвращать результаты из триггеров будет исключена из следующей версии SQL Server. Триггеры, возвращающие результирующие наборы, могут вызвать непредвиденное поведение тех приложений, которые не предназначены для работы с ними. Избегайте в текущих разработках использования триггеров, возвращающих результирующие наборы, и запланируйте изменения в приложениях, которые сейчас используют их. Чтобы триггеры не возвращали результирующие наборы, для параметра disallow results from triggers необходимо установить значение 1.
http://msdn.microsoft.com/ru-ru/library/ms189799(v=sql.100).aspx
21 мар 14, 12:40    [15765506]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос  [new]
denis_viktorovich
Member

Откуда: Екб
Сообщений: 1237
iap,
Спасибо всем за ответы. Понятно, т.е. в будущих версиях у заберут возможность так косячить )))).
Это (принты, селекты) доводилось использовать, когда много логики именно в триггерах, зачастую еще вызывающих выполнение других триггеров. В instead update до апдейта километровая процедура и после, причем проверки разнообразные могут кинуть эксепшн и все откатить, иной раз сильно непросто понять что именно не так считается.
21 мар 14, 15:50    [15767519]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить