sql >> Database >  >> RDS >> Sqlserver

Hoe maakt u sjablonen voor opgeslagen procedures voor SQL Server 2005 in SQL Server 2005 Management Studio?

Nog een klein goudklompje waarvan ik denk dat het mensen zal helpen zich te ontwikkelen en productiever te zijn in hun database-ontwikkeling. Ik ben een fan van opgeslagen procedures en functies bij het ontwikkelen van softwareoplossingen. Ik vind het leuk dat mijn eigenlijke CRUD-methoden op databaseniveau worden geïmplementeerd. Het stelt me ​​in staat om mijn werk te balanceren tussen de applicatiesoftware (bedrijfslogica en gegevenstoegang) en de database zelf. Ik wil geen religieuze oorlog beginnen, maar ik wil mensen in staat stellen om opgeslagen procedures sneller en met best practices te ontwikkelen door middel van sjablonen.

Laten we beginnen met het maken van uw eigen sjablonen in de SQL Server 2005 management Studio. Eerst moet je de Template Explorer in de Studio tonen.

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

Dit toont het volgende:

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

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

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

De IDE maakt een blanco sjabloon. Om de sjabloon te bewerken, klikt u met de rechtermuisknop op de sjabloon en selecteert u Bewerken. U krijgt een leeg Query-venster in de IDE. U kunt nu uw sjabloonimplementatie invoegen. Ik heb hier de sjabloon van de nieuwe opgeslagen procedure om een ​​TRY CATCH op te nemen. Ik neem graag foutafhandeling op in mijn opgeslagen procedures. Met de nieuwe TRY CATCH-toevoeging aan TSQL in SQL Server 2005, moeten we proberen dit krachtige mechanisme voor het afhandelen van uitzonderingen te gebruiken via onze code, inclusief databasecode. Sla de sjabloon op en u bent klaar om uw nieuwe sjabloon te gebruiken voor het maken van opgeslagen procedures.

-- ======================================================
-- 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


  1. Mysql:Inline-tabel maken binnen select-statement?

  2. PHP, haal gegevens uit de database

  3. MySql - Is er ergens een wachtrij voor query's?

  4. Het maken van een trigger voor het invoegen van een onderliggende tabel geeft een verwarrende fout