Еще один маленький самородок, который, я думаю, поможет людям развиваться и быть более продуктивными в разработке своих баз данных. Я фанат хранимых процедур и функций при разработке программных решений. Мне нравится, что мои настоящие методы CRUD будут реализованы на уровне базы данных. Это позволяет мне сбалансировать свою работу между прикладным программным обеспечением (бизнес-логикой и доступом к данным) и самой базой данных. Не желая начинать религиозную войну, но я хочу позволить людям быстрее разрабатывать хранимые процедуры и использовать лучшие практики с помощью шаблонов.
Начнем с создания собственных шаблонов в среде управления SQL Server 2005. Во-первых, вам нужно показать проводник шаблонов в студии.
альтернативный текст http://www.cloudsocket.com/images/image-thumb10.png
Это покажет следующее:
альтернативный текст http://www.cloudsocket.com/images/image-thumb11.png
альтернативный текст http://www.cloudsocket.com/images/image-thumb12.png
альтернативный текст http://www.cloudsocket.com/images/image-thumb13.png
В среде IDE будет создан пустой шаблон. Чтобы изменить шаблон, щелкните правой кнопкой мыши шаблон и выберите «Изменить». Вы получите пустое окно запроса в IDE. Теперь вы можете вставить свой шаблон реализации. У меня есть шаблон новой хранимой процедуры, чтобы включить TRY CATCH. Мне нравится включать обработку ошибок в мои хранимые процедуры. С новым дополнением TRY CATCH к TSQL в SQL Server 2005 мы должны попытаться использовать этот мощный механизм обработки исключений через наш код, включая код базы данных. Сохраните шаблон, и вы все готовы использовать новый шаблон для создания хранимой процедуры.
-- ======================================================
-- 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