Outra pepita que eu acho que vai ajudar as pessoas a desenvolverem e serem mais produtivas em seu desenvolvimento de banco de dados. Sou fã de procedimentos armazenados e funções quando desenvolvo soluções de software. Eu gosto que meus métodos CRUD reais sejam implementados no nível do banco de dados. Isso me permite equilibrar meu trabalho entre o software aplicativo (lógica de negócios e acesso a dados) e o próprio banco de dados. Não querendo começar uma guerra religiosa, mas quero permitir que as pessoas desenvolvam stored procedures de forma mais rápida e com melhores práticas por meio de templates.
Vamos começar criando seus próprios modelos no SQL Server 2005 Management Studio. Primeiro, você precisa mostrar o Template Explorer no Studio.
texto alternativo http://www.cloudsocket.com/images/image-thumb10.png
Isso mostrará o seguinte:
texto alternativo http://www.cloudsocket.com/images/image-thumb11.png
texto alternativo http://www.cloudsocket.com/images/image-thumb12.png
texto alternativo http://www.cloudsocket.com/images/image-thumb13.png
O IDE criará um modelo em branco. Para editar o modelo, clique com o botão direito do mouse no modelo e selecione Editar. Você obterá uma janela de consulta em branco no IDE. Agora você pode inserir sua implementação de modelo. Tenho aqui o template do novo stored procedure para incluir um TRY CATCH. Eu gosto de incluir tratamento de erros em meus procedimentos armazenados. Com a nova adição TRY CATCH ao TSQL no SQL Server 2005, devemos tentar usar esse poderoso mecanismo de manipulação de exceção por meio de nosso código, incluindo o código do banco de dados. Salve o modelo e você estará pronto para usar seu novo modelo para a criação do procedimento armazenado.
-- ======================================================
-- 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