В хранимой процедуре мне нужно получить счетчик результатов другой хранимой процедуры. В частности, мне нужно знать, возвращает ли он какие-либо результаты или пустой набор.Каков наиболее эффективный способ подсчета результатов хранимой процедуры из другой хранимой процедуры?
Я мог бы создать переменную temp table/table, выполнить хранимую процедуру в ней, а затем запустить подсчет количества выбранных данных. Но я действительно не забочусь о самих данных, мне нужен только счет (или наличие/отсутствие данных). Мне было интересно, есть ли более эффективный способ получить именно эту информацию.
Я не хочу просто копировать содержимое другой хранимой процедуры и переписывать ее как выбранный счетчик. Хранимая процедура слишком часто изменяется для того, чтобы она была работоспособной.
На самом деле я не думаю, что это хорошая идея. Поскольку возвращаемое значение имеет тип int, и вы не можете передать с ним bigint.Поэтому, если у вас есть таблица с миллионами записей с первичным ключом bigint, ваше решение может быть подвержено риску, и оно просто не работает. Кроме того, я должен сказать, что определение возвращаемого значения в sql - это просто сообщить результат операции и ничего другого (например, перечисления на C# всегда должны иметь определенные значения). Вероятно, лучше использовать выходные параметры для выполнения такой вещи или, как сказал наш друг, использовать переменную @@ RowCount. Cheers – Rikki 2012-10-09 16:42:21