我可以在两个或多个文件中定义相同的数据对象吗?

时间:2016-09-09 17:34:05

标签: sql-server visual-studio sql-server-data-tools

这是我的情景。

我有几个不同的存储过程。他们每个人都会执行一项独特的任务,但基于相似的参数模式。

为了避免一遍又一遍地编写(几乎)相同的代码,我想使用一个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

有没有办法做到这一点?通过遵循“Procedure _#.sql”之类的文件命名约定,其中“#”将用于确定SSDT引擎必须连接代码的顺序,或文件包含的某些特殊SSDT语法?

附加说明:我知道我可以简单地将每个过程的整个代码放在专用的TT文件中,但这意味着会丢失Visual Studio的SQL编辑器功能,例如Intellisense。不是一个可接受的解决方案。

1 个答案:

答案 0 :(得分:1)

没有办法合并这样的代码,部署脚本可以使用“:r文件名”从sqlcmd位导入。

他们改变了多少/多少次?这听起来像你想做的一次性操作然后只是保存项目中的过程??