【发布时间】:2011-05-04 01:43:58
【问题描述】:
我在 Sql Server 2008 Express SMS 中编写并在 Visual Studio 2010 内部使用的 SQL 查询存在问题。
基础知识:网页上有一个输入框。它用于搜索人名、地址、id 等。当我在网站上或内置的 Visual Studio Server Explorer 中使用人名时,例如“Kargul”(编造),它不会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;
【问题讨论】:
标签: visual-studio-2010 sql-server-2008 stored-procedures server-explorer