sql >> Databasteknik >  >> RDS >> Sqlserver

Hur skapar du SQL Server 2005 mallar för lagrade procedur i SQL Server 2005 Management Studio?

En annan liten guldklimp som jag tror kommer att hjälpa människor att utvecklas och bli mer produktiva i sin databasutveckling. Jag är ett fan av lagrade procedurer och funktioner när jag utvecklar mjukvarulösningar. Jag gillar att mina faktiska CRUD-metoder implementeras på databasnivå. Det låter mig balansera mitt arbete mellan applikationsmjukvaran (affärslogik och dataåtkomst) och själva databasen. Jag vill inte starta ett religionskrig, men jag vill tillåta människor att utveckla lagrade procedurer snabbare och med bästa praxis genom mallar.

Låt oss börja med att skapa dina egna mallar i SQL Server 2005 Management Studio. Först måste du visa mallutforskaren i Studion.

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

Detta kommer att visa följande:

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

IDE kommer att skapa en tom mall. För att redigera mallen, högerklicka på mallen och välj Redigera. Du kommer att få ett tomt frågefönster i IDE. Du kan nu infoga din mallimplementering. Jag har här mallen för den nya lagrade proceduren för att inkludera en TRY CATCH. Jag gillar att ta med felhantering i mina lagrade rutiner. Med det nya TRY CATCH-tillägget till TSQL i SQL Server 2005 bör vi försöka använda denna kraftfulla mekanism för undantagshantering genom vår kod inklusive databaskod. Spara mallen och du är alla redo att använda din nya mall för att skapa lagrad procedur.

-- ======================================================
-- 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 lagrad procedur vs funktion, vilken skulle jag använda när?

  2. Flera medelvärden över jämnt fördelade intervall

  3. Hitta alla referenser att visa

  4. Kan jag lösa detta med ren mysql? (sammanfogar på '' separerade värden i en kolumn)