0

Sql Server 2008 Express SMSで記述したSQLクエリに問題があり、VisualStudio2010内で使用しています。

基本:Webページに入力ボックスがあります。人の名前、住所、IDなどを検索するために使用されます。Webサイトで、または「Kargul」(構成された)などの組み込みのVisual Studio Server Explorerの内部で人の名前を使用すると、 tストアドプロシージャを使用して結果を返します。ただし、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;
4

1 に答える 1

0

サーバーでプロファイラー トレースを実行して、VS2010 を実行したときに何が実行されているかを確認します。検索パラメーターが渡されない可能性はありますか? または、proc で SET NOCOUNT ON が必要な場合もあります。

于 2011-05-04T11:09:00.893 に答える