我試圖創建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