2016-09-09 5 views
0

Вот мой сценарий.Могу ли я иметь один и тот же объект данных, определенный в двух или более файлах?

У меня есть несколько разных хранимых процедур. Каждый из них будет выполнять уникальную задачу, но на основе довольно схожих параметров.

Чтобы избежать написания (почти) одного и того же кода снова и снова, я хотел бы использовать шаблон T4, который будет работать с использованием всего нескольких переменных входных данных для генерации «верхнего» раздела процедуры (объявление переменной и инициализация , в основном).

Теперь я хотел бы использовать выходной файл шаблона T4 как «часть один» процедуры, а другой файл - «часть вторая». Своеобразная функция «частичного класса», найденная на других языках, таких как C#, но с последовательным порядком.

Вот как я хотел бы это:

Файл 1:

CREATE PROC blabla 
    @param1 INT, 
    @param2 VARCHAR(50) 
AS 
    DECLARE @someConditionMet = 0 

    IF (@param1 > 0) 
    BEGIN 
     -- Imagine some recurrent pattern here 
    END 

Файл 2:

IF @someConditionMet = 1 
BEGIN 
    -- Elaborate, procedure-unique code here 
END 

RETURN 0 

Есть ли способ сделать это? Следуя соглашению об именах файлов, например, «Процедура _ #. Sql», где «#» будет использоваться для определения порядка, в котором механизм SSDT должен конкатенировать код, или какой-либо специальный синтаксис SSDT для файла включает?

Дополнительное примечание: Я знаю, что я мог бы просто поместить весь код для каждой процедуры в выделенный файл TT, но это означало бы потерять функции редактора SQL Visual Studio, такие как Intellisense. Не приемлемое решение.

ответ

1

Невозможно объединить код, подобный этому, сценарии развертывания могут использовать импорт «: r file name» из битов sqlcmd.

Сколько или как часто они меняются? Это звучит как однократная операция, которую вы хотели бы сделать, а затем просто сохранить procs в проекте?

+0

Это проект по разработке, и менеджер db (который также мой босс) может получить очень, хорошо, «творческий» с изменениями. :) Я ищу простой способ вернуться на мои ноги, должен ли он вводить новые элементы (или убирать существующие), которые нарушают мой код. – Crono

+0

ах удачи, не так много сказать, тогда я думаю, кроме писать много тестов и принимать изменения :) –

 Смежные вопросы

  • Нет связанных вопросов^_^