SQL Server 2008 SMS и результаты Visual Server 2010 Server Explorer
У меня возникла проблема с моим SQL-запросом, который я написал в Sql Server 2008 Express SMS и использую внутри Visual Studio 2010.
Основы: на веб-странице есть поле ввода. Он используется для поиска имени человека, адреса, идентификатора и т. Д. Когда я использую имя человека на веб-сайте или внутри встроенного в Visual Studio Server Explorer, такого как "Kargul" (составленный), он выигрывает ". не возвращает никаких результатов, используя мою хранимую процедуру. Однако в SQL Server 2008 Express SMS та же хранимая процедура возвращает действительный результат.
Есть что-то, чего мне не хватает? Вот моя процедура:
SET NOCOUNT ON;
DECLARE @vars NVARCHAR(50);
SET @vars = '%' + @searchTerm + '%';
SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a
JOIN dbo.PersonStatus as Stat
ON a.StatusId = Stat.StatusId
WHERE
a.FirstName LIKE (@vars)
UNION
SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a
JOIN dbo.PersonStatus as Stat
ON a.StatusId = Stat.StatusId
WHERE
a.LastName LIKE (@vars)
UNION
SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a
JOIN dbo.PersonStatus as Stat
ON a.StatusId = Stat.StatusId
WHERE
a.Street1 LIKE (@vars)
UNION
SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a
JOIN dbo.PersonStatus as Stat
ON a.StatusId = Stat.StatusId
WHERE
a.City LIKE (@vars)
UNION
SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a
JOIN dbo.PersonStatus as Stat
ON a.StatusId = Stat.StatusId
WHERE
a.PersonId LIKE (@vars)
UNION
SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a
JOIN dbo.PersonStatus as Stat
ON a.StatusId = Stat.StatusId
WHERE
a.State LIKE (@vars)
ORDER BY PersonId;
1 ответ
Запустите трассировку профилировщика на сервере, чтобы увидеть, что выполняется при запуске через VS2010; Возможно ли, что параметр поиска не передается? Или, может быть, вам нужен SET NOCOUNT ON в вашем процессе.