• Here is a starting point with some basics included for you:

    IF EXISTS ( SELECT *

    FROM sys.objects

    WHERE object_id = OBJECT_ID(N'[schema_name].[proc_name]')

    AND type IN (N'P', N'PC') )

    DROP PROCEDURE schema_name.proc_name;

    GO

    SET ANSI_NULLS ON;

    GO

    SET QUOTED_IDENTIFIER ON;

    GO

    CREATE PROCEDURE schema_name.proc_name (@param NVARCHAR(500))

    AS

    BEGIN

    /********************************************************************************

    Created:

    Purpose:

    Author:

    Called By:

    Example:

    Modification History:

    Date Author Purpose

    ----------- --------------- ----------------------------------------------------

    ********************************************************************************/

    SET NOCOUNT ON;

    BEGIN TRY;

    IF @param IS NULL

    BEGIN

    THROW 50000, 'Parameter @param not supplied.',1;

    END;

    SELECT some_column

    FROM dbo.some_table

    WHERE some_other_column = @param;

    -- verify a row was found

    IF @@ROWCOUNT = 0

    RAISERROR ('Data not found based on supplied parameter. Parameter supplied is %s.',16,1,@param);

    RETURN;

    END TRY

    BEGIN CATCH;

    -- optionally log the error somewhere

    THROW;

    END CATCH;

    END;

    GO

    There are no special teachers of virtue, because virtue is taught by the whole community.
    --Plato