Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come si creano modelli di stored procedure di SQL Server 2005 in SQL Server 2005 Management Studio?

Un'altra piccola pepita che penso aiuterà le persone a sviluppare ed essere più produttive nello sviluppo del loro database. Sono un fan delle stored procedure e delle funzioni quando sviluppo soluzioni software. Mi piace che i miei metodi CRUD effettivi vengano implementati a livello di database. Mi permette di bilanciare il mio lavoro tra il software applicativo (logica di business e accesso ai dati) e il database stesso. Non voglio iniziare una guerra religiosa, ma voglio consentire alle persone di sviluppare procedure archiviate più rapidamente e con le migliori pratiche tramite modelli.

Iniziamo con la creazione di modelli personalizzati in SQL Server 2005 Management Studio. Innanzitutto, devi mostrare Esplora modelli in Studio.

alt text http://www.cloudsocket.com/images/image-thumb10.png

Questo mostrerà quanto segue:

alt text http://www.cloudsocket.com/images/image-thumb11.png

alt text http://www.cloudsocket.com/images/image-thumb12.png

alt text http://www.cloudsocket.com/images/image-thumb13.png

L'IDE creerà un modello vuoto. Per modificare il modello, fare clic con il pulsante destro del mouse sul modello e selezionare Modifica. Otterrai una finestra Query vuota nell'IDE. Ora puoi inserire l'implementazione del tuo modello. Ho qui il modello della nuova stored procedure per includere un TRY CATCH. Mi piace includere la gestione degli errori nelle mie stored procedure. Con la nuova aggiunta di TRY CATCH a TSQL in SQL Server 2005, dovremmo provare a utilizzare questo potente meccanismo di gestione delle eccezioni attraverso il nostro codice, incluso il codice del database. Salva il modello e sei pronto per utilizzare il tuo nuovo modello per la creazione di stored procedure.

-- ======================================================
-- Create basic stored procedure template with TRY CATCH
-- ======================================================

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
-- =============================================
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
    -- Add the parameters for the stored procedure here
    <@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
    <@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
    BEGIN TRY
        BEGIN TRANSACTION    -- Start the transaction

        SELECT @p1, @p2

        -- If we reach here, success!
        COMMIT
    END TRY
    BEGIN CATCH
        -- there was an error
        IF @@TRANCOUNT > 0
        ROLLBACK

        -- Raise an error with the details of the exception
        DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
        SELECT @ErrMsg = ERROR_MESSAGE(), @ErrSeverity = ERROR_SEVERITY()

        RAISERROR(@ErrMsg, @ErrSeverity, 1)
    END CATCH
GO