Вам все равно нужен NOCOUNT в теле Sproc (я ценю, что вы проверили его с и без)
В подобных обстоятельствах я получаю реальный вызов Sproc (либо из Debug в моем приложении, либо с помощью SQL Profiler), а затем подключаю его к SSMS или к любой IDE, которую вы используете, оборачивая его в транзакцию ROLLBACK не может случайно внести какие-либо изменения). Примечание. Войдите в SQL Server, используя IDE, используя те же учетные данные, что и приложение.
BEGIN TRANSACTION
EXEC StaffEnquirySurnameSearch @searchterm = 'FOOBAR'
ROLLBACK
и посмотри, что получишь. Используйте режим ТЕКСТ для вывода, а не режим GRID, который может что-то скрыть
Просто чтобы показать, как я думаю, NOCOUNT должен быть добавлен к вашему SProc:
CREATE PROCEDURE StaffEnquirySurnameSearch
@searchterm varchar(255)
AS
SET NOCOUNT ON
SELECT AD.Name, AD.Company, AD.telephoneNumber, AD.manager, CVS.Position,
CVS.CompanyArea, CVS.Location, CVS.Title, AD.guid AS guid,
AD.firstname, AD.surname
FROM ADCVS AD
LEFT OUTER JOIN CVS ON
AD.Guid=CVS.Guid
WHERE AD.SurName LIKE @searchterm
ORDER BY AD.Surname, AD.Firstname
GO
Я отмечаю, что вы не ставите префикс таблиц перед владельцем базы данных (чаще всего "dbo"), что может означать, что есть дополнительные копии, принадлежащие whomever, и что они оказываются значениями по умолчанию с точки зрения разрешений приложений, хотя Я не думаю, что это изменит наборы результатов [между версиями SQL]. Однако то же самое относится и к владению Sproc, и там вы можете вызывать более раннюю версию, созданную для другого владельца.
То же самое, где ваше имя Sproc определено в вашем коде ASP.NET (который я не могу найти в вашем связанном вопросе) также должно иметь владельца, то есть
EXEC dbo.StaffEnquirySurnameSearch @searchterm = 'FOOBAR'