Lecture – Getting Started with Stored Procedures in SQL Server

Getting Started with Stored Procedures in SQL Server

Summary of Video

This Video uses the Music Database example shown in  Lecture – Getting Started with SQL Server Management Studio . We create a stored procedure to insert data into the database using the referential integrity rules.

Prerequisites

Lecture – Getting Started with SQL Server Management Studio

Video Link

Support Materials

Information about setting @ variables in T-SQL with SELECT

Information about setting @ variables i-SQL using SET

Using IF-Then Statements in T-SQL

The stored procedure created in the lecture;

USE [MusicDatabase]
GO

CREATE PROCEDURE [dbo].[sp_InsertSong] (
 @SongName NVARCHAR(200),
 @AlbumName NVARCHAR(200),
 @ArtistName NVARCHAR(200),
 @TrackNumber INT)
AS
BEGIN

DECLARE @ArtistCount INT
SET @ArtistCount = (SELECT COUNT(*) FROM Artists WHERE Name = @ArtistName)

DECLARE @ArtistID INT
IF @ArtistCount = 1
BEGIN
SET @ArtistID = (SELECT id FROM Artists WHERE name = @ArtistName)
END
ELSE
BEGIN
INSERT INTO Artists (name) VALUES (@ArtistName)
SET @ArtistID = @@IDENTITY
END

DECLARE @AlbumCount INT
SET @AlbumCount = (SELECT COUNT(*) FROM Albums WHERE name = @AlbumName)
DECLARE @AlbumID INT

IF @AlbumCount = 1
BEGIN
 SET @AlbumID = (SELECT id FROM Albums WHERE name = @AlbumName)
END
ELSE
BEGIN
INSERT INTO Albums (Name, ArtistID) VALUES (@AlbumName, @ArtistID)
SET @AlbumID = @@IDENTITY
END

INSERT INTO Songs (name, AlbumID, TrackNumber)
     VALUES (@SongName, @AlbumID, @TrackNumber)

END
GO

All Materials Copyright 2012 Dr. Ron Eaglin
USE [MusicDatabase]
GO

CREATE PROCEDURE [dbo].[sp_InsertSong] (
 @SongName NVARCHAR(200),
 @AlbumName NVARCHAR(200),
 @ArtistName NVARCHAR(200),
 @TrackNumber INT)
AS
BEGIN

DECLARE @ArtistCount INT
SET @ArtistCount = (SELECT COUNT(*) FROM Artists WHERE Name = @ArtistName)

DECLARE @ArtistID INT
IF @ArtistCount = 1
BEGIN
SET @ArtistID = (SELECT id FROM Artists WHERE name = @ArtistName)
END
ELSE
BEGIN
INSERT INTO Artists (name) VALUES (@ArtistName)
SET @ArtistID = @@IDENTITY
END

DECLARE @AlbumCount INT
SET @AlbumCount = (SELECT COUNT(*) FROM Albums WHERE name = @AlbumName)
DECLARE @AlbumID INT

IF @AlbumCount = 1
BEGIN
 SET @AlbumID = (SELECT id FROM Albums WHERE name = @AlbumName)
END
ELSE
BEGIN
INSERT INTO Albums (Name, ArtistID) VALUES (@AlbumName, @ArtistID)
SET @AlbumID = @@IDENTITY
END

INSERT INTO Songs (name, AlbumID, TrackNumber)
     VALUES (@SongName, @AlbumID, @TrackNumber)

END
GO