Lecture – Getting Started with Stored Functions in SQL Server
Summary of Video
In this video I create a scalar stored function and demonstrate how to use it in SQL Statement
Prerequisites
Lecture – Getting Started with Stored Procedures in SQL Server
Video Link
Support Materials
CREATE FUNCTION [dbo].[func_GetArtistIDsForSong] ( @SongName NVARCHAR(200) ) RETURNS TABLE AS RETURN ( SELECT Albums.artistID FROM Albums, Songs WHERE Songs.name LIKE @SongName + '%' AND Songs.albumID = Albums.id) GO |
CREATE FUNCTION [dbo].[func_AllMusiciansForSong] ( @SongID INT ) RETURNS NVARCHAR(MAX) AS BEGIN DECLARE @rVal NVARCHAR(MAX) DECLARE @iVal NVARCHAR(MAX) SET @RVal = '' SET @iVal = '' DECLARE c CURSOR FOR SELECT Musician.name + ':' + InstrumentPlayed.name + ' ' FROM Musician, InstrumentPlayed WHERE InstrumentPlayed.SongID = @SongID AND InstrumentPlayed.MusicianID = Musician.id OPEN c FETCH NEXT FROM c INTO @iVal WHILE (@@FETCH_STATUS <> -1) BEGIN SET @rVal = @rVal + @iVal FETCH NEXT FROM c INTO @iVal END CLOSE c DEALLOCATE c RETURN(@rVal) END |
CREATE FUNCTION [dbo].[func_GetAlbumName] ( @AlbumID INT ) RETURNS NVARCHAR(200) AS BEGIN RETURN(SELECT TOP 1 name FROM Albums WHERE id = @AlbumID) END |
CREATE FUNCTION [dbo].[func_GetAlbumID] ( @AlbumName NVARCHAR(200) ) RETURNS INT AS BEGIN DECLARE @AlbumCount INT SET @AlbumCount = (SELECT Count(*) FROM Albums WHERE Name = @AlbumName) IF @AlbumCount >= 1 BEGIN RETURN (SELECT TOP 1 id FROM Albums WHERE name = @AlbumName) END RETURN(0) END |
All Materials Copyright 2013 Dr. Ron Eaglin