Books and articles about SQL Rambler's Top100 Сменить язык на: Русский 29 March 2024 02:10:52


www.sql-ex.ru
Skip Navigation Links  

 

Print  Версия для печати

На главную страницу

Играем с параметрами шаблонов в SQL Server 2005.

Arthur Fuller (оригинал: Toying with template parameters in SQL Server 2005)
Перевод Моисеенко С.И.

Если Вы создаете функции или хранимые процедуры в Студии Управления (Management Stulio - MS) SQL Server 2005, обратите внимание на новое окно со списком шаблонов. В общем случае Вы получаете скелет с вкраплениями маркеров. В листинге A приводится пример, который можно получить, если развернуть узел Programmability в браузере объектов, выбрать Stored Procedures (хранимые процедуры), а затем щелкнуть правой кнопкой мыши и выбрать New Stored Procedure (новая хранимая процедура).

-- ============================== ==================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ============================== ==================

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- ============================== ===============
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- ============================== ===============

CREATEPROCEDURE<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
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT<@Param1,sysname, @p1>,<@Param2,sysname, @p2>
END
GO

Удивительно большое число разработчиков не в состоянии прочитать первый блок комментариев, которые дают инструкции относительно того, как заполнить параметры. Вы можете сделать это либо нажимая [Ctrl] [Shift] М, либо выбирая команду Query | Specify Values For Template Parameters в главном меню. Так или иначе, появится диалоговое окно, показанное на рисунке 1.


Рис.1

Чтобы поставить значение вместо любого маркера шаблона, проделайте следующее:
Дважды щелкните на соответствующей строке в диалоговом окне.
Введите подходящее значение, и проделайте то же самое для каждого маркера.
Нажмите OK.

Диалоговое окно исчезает, и маркеры волшебным образом заменятся на данные, которые Вы ввели.

Шаблон, как это написано, предполагает, что Вы передадите два параметра в хранимую процедуру. Не вполне очевидно, что перед открытием этого диалогового окна, Вы можете поиграть с шаблоном. Например, я добавил третий параметр в код шаблона перед открытием диалогового окна. В результате диалоговое окно автоматически включило мой новый параметр. На рис. 2 показано произошедшее изменение.


Рис.2

Это - очень быстрая возможность, хотя ее выполнение как шаловливый ребенок. Если Вы нажмете OK, как только открыли диалоговое окно параметров, то любой маркер, свойства которого Вы не обновили, будет преобразован не совсем так, чтобы его выбросить, но перестанет быть маркером.

Эта незначительная проблема не должна заставить Вас отказаться от использования такой возможности редактора. Просто не забывайте корректировать код шаблона перед открытием диалогового окна задания параметров. Вы будете иметь приятно отформатированный стандартный заголовок для каждого объекта, который Вы создаете, который будет повторяться от объекта к объекту в вашей базе данных.

11 сентября 2006

На главную страницу

Print  Версия для печати


Usage of any materials of this site is possible
only under condition of mandatory allocation of the direct link to a site
http://www.sqlbooks.ru
on each page where used materials are placed.

 Main   Articles    Books 
Рейтинг@Mail.ru Rambler's Top100 Alt Упражнения по SQL: обучение, тестирование, сертификация по языку SQL Copyright c 2002-2006. All rights reserved.