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

Can I have the same dataobject defined in two or more files?

这是我的场景。

我有几个不同的存储过程要制作。他们将各自执行一项独特的任务,但基于非常相似的参数模式。

为了避免一遍又一遍地编写(几乎)相同的代码,我想使用一个 T4 模板,该模板只需使用几个变量输入即可生成过程的 "upper" 部分(变量主要是声明和初始化)。

我现在想做的是使用T4模板的输出文件作为程序的"part one",另一个文件作为"part two"。有点像其他语言(例如 C#)中的 "partial class" 功能,但具有连续顺序。

这是我想要的方式:

文件 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 .不是可接受的解决方案。

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

它们 many/how 的变化频率如何?这听起来像是您想要做的一次性操作,然后只需将过程保存在项目中??