NHibernate INSERT TO SQL Расчетное поле SET NOCOUNT - PullRequest
0 голосов
/ 15 ноября 2011

Мне нужно исключить вывод сообщений из функции SQL. Как в 1 row affected. Я не могу использовать SET NOCOUNT, так как это недопустимо в функции.

Кто-нибудь знает способ сделать это?

Спасибо.

EDIT

Я пытался ограничить справочную информацию, пытаясь свести проблему к ее сути. Но я расширю. Я использую MSSQL2005 и NHibernate для вставки записи в таблицу SQL. В таблице у меня есть вычисляемый столбец, который выполняет функцию, которая сообщает 1 row affected.

Я действительно не хотел редактировать часть процесса NHibernate, но это может быть неизбежно.

Ответы [ 2 ]

2 голосов
/ 15 ноября 2011

Функция, которая возвращает «(затронута 1 строка)», будет частью большого запроса в пакете.Нет смысла иметь SET NOCOUNT ON в функции

Вам необходимо сделать следующее:

SET NOCOUNT ON;
SELECT * FROM MyUDFTVF();

Обратите внимание, что хранимая процедура - это просто оболочка для этого

CREATE PROC Whatever
AS
    SET NOCOUNT ON;
    SELECT * FROM MyUDFTVF();
GO

SET NOCOUNT ON обычно необходим для остановки триггеров и т. Д., Нарушающих код клиента : зачем вам это нужно здесь?

0 голосов
/ 15 ноября 2011

Настройка nocount недоступна в функциях.

Хранимые процедуры позволяют вам установить nocount. Таким образом, преобразование функции в хранимую процедуру решит проблему.

В противном случае вызывающий код должен будет установить nocount. Это не должно быть сложно, но может быть утомительно, если функция используется во многих местах.

P.S. Если вы опубликуете причину необходимости подавления подсчета сообщений, возможно, мы сможем предложить еще несколько решений.

...