SQL Server 2008 SMS и результаты Visual Studio 2010 Server Explorer - PullRequest
0 голосов
/ 04 мая 2011

У меня проблема с моим запросом 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 Ответ

0 голосов
/ 04 мая 2011

Запустите трассировку профилировщика на сервере, чтобы увидеть, что выполняется при запуске через VS2010; Возможно ли, что параметр поиска не передается? Или, может быть, вам нужен SET NOCOUNT ON в вашем процессе.

...