运行另一个嵌套文本模板文件
本文关键字:文件 文本 另一个 嵌套 运行 | 更新日期: 2023-09-27 18:31:07
简而言之,我需要在另一个文本模板文件中运行一个文本模板文件。
详:我的问题是我们有一堆.tt文件,它们基本上将几个SQL文件组合在一个地方。然而,他们处于催眠状态。
- Schema.tt
- InitialProductionData.tt
- TestData.tt
基本上,TestData.tt 还包含其他两个文件生成的所有.sql文件以及其他几个SQL文件。 InitialProduction.tt 还包含 Schema.tt 的结果 SQL 文件。
每个文件都在不同的地方使用,依此类推。
文件内部如下所示:
<#@ output extension=".sql" #>
<#@ include file="../Schema/InitialProductionData.sql" #>
SET NOCOUNT ON
GO
use [SomeDatabase]
GO
<#@ include file="HelloWorld.sql" #>
<#@ include file="GoogleData.sql" #>
<#@ include file="YahooData.sql" #>
但是为了正确运行 TestData.tt 文件,我需要先运行其他 .tt 文件。为什么我需要的是,当我运行 TestData.tt 时,它会自动按顺序运行其他脚本,并使用生成的脚本生成包含所有内容的最终 SQL 脚本。
我认为您有两种选择:使用包含而不是 .tt,或者将生成的代码从一个模板写入 SQL 文件。
对于第一种方法,您所要做的就是将 .tt 文件上的扩展名更改为 .ttinc 之类的扩展名,并确保它们未设置为自动生成。这样,它们仅在从另一个文本模板包含时运行。
然后,您可以像这样包含它们:
<#@>
另一种选择是写出生成的代码以从一个主模板中分离文件。 Oleg Sych在他的博客上写过这个。