SQL Server 2008 でストアド プロシージャを作成しようとしています ( Chinookが役立つ場合) データベースの Track テーブルで、アルバム タイトル (の一部) に一致するトラックを検索します。たとえば、パラメータが「ロック」の場合、タイトルに「ロック」が含まれるアルバムのすべてのトラックをどこかに表示したいと考えています。
'rock' のハード コーディングは期待どおりに機能しますが、パラメーターとして 'rock' を使用して Management Studio からプロシージャを実行すると、多くの非 "rock" の結果が返されます。
ストアドプロシージャをいじるために使用しているスクリプトは次のとおりです。
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