Мы ввели новую структуру доступа к данным для вызова хранимых процедур SQL. При вызове хранимой процедуры, которая возвращает набор записей, мы столкнулись с проблемами, когда эта хранимая процедура также выполняет какое-либо обновление (вставка / обновление / удаление):
Невозможно изменить ActiveConnection
свойство объекта Recordset, который
имеет объект Command в качестве источника.
Решением этой проблемы является добавление «SET NOCOUNT ON» в начало хранимой процедуры. Это работает просто отлично, и, конечно, оно также имеет повышенную производительность.
Мы рекомендуем разработчикам, что, когда они хотят написать код для вызова существующей хранимой процедуры, они также должны реорганизовать саму хранимую процедуру, включив в нее SET NOCOUNT ON
.
Но это заставило меня задуматься о том, каковы будут потенциальные последствия / риски выполнения общего обновления всех хранимых процедур, включая SET NOCOUNT ON
. В каких случаях это нарушит функциональность SP? (учитывая, что функция @@ ROWCOUNT обновляется, даже когда SET NOCOUNT включен)
Помощь, как всегда, высоко ценится.