我试图创建SQL Server 2008中搜索(Chinook,如果它可以帮助)数据库中的曲目表匹配的专辑标题(的一部分)的轨道的存储过程。例如,当参数是“石头”,我想看看所有那些在具有技术职称的他们“摇滚”专辑某处的轨道。搜索参数不正常
硬编码“摇滚”工作正常,但是从Management Studio中有“摇滚”运行过程作为参数返回了不少非“摇滚”的结果。
这里是我用我的存储过程来鼓捣剧本:
ALTER PROCEDURE [dbo].[searchTrackAlbumTitle]
@trackAlbumTitle nvarchar
AS
BEGIN
SET NOCOUNT ON;
SELECT Track.TrackId
,Track.Name AS TrackName
,Artist.Name AS ArtistName
,Album.Title AS AlbumTitle
,Track.Composer
,Track.Milliseconds
,Track.Bytes
,MediaType.Name AS TypeName
,Genre.Name AS GenreName
,Track.UnitPrice
FROM Track
LEFT JOIN Album ON Track.AlbumId = Album.AlbumId
LEFT JOIN Artist ON Album.ArtistId = Artist.ArtistId
LEFT JOIN MediaType ON Track.MediaTypeId = MediaType.MediaTypeId
LEFT JOIN Genre ON Track.GenreId = Genre.GenreId
WHERE Album.Title LIKE ('%' + @trackAlbumTitle + '%') -- doesn't work
--WHERE Album.Title LIKE ('%' + 'rock' + '%') -- works
END
我敢打赌,所有的'非 “摇滚” results'包含'r'。 – 2013-03-27 19:35:50
另外这个沉默截断可能会被认定更快速地加入简单的调试101到过程的开始,如'PRINT @trackAlbumTitle;'会产生'r'。 – 2013-03-27 19:44:39
谢谢。这个想法对我来说是新的,但我现在尝试了,我看到我可以看到“消息”以查看结果。 – 2013-03-27 19:54:35