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