1

つまり、テキスト テンプレート ファイルを別のテキスト テンプレート ファイルで実行する必要があります。

詳細: 私の質問は、いくつかの .tt ファイルがあり、それらは基本的に複数の SQL ファイルを 1 か所にまとめたものです。しかし、彼らはハイリー状態にあります。

  1. Schema.tt
  2. InitialProductionData.tt
  3. TestData.tt

基本的に、TestData.tt には、他の 2 つによって生成されたすべての .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 スクリプトが生成されるからです。

4

1 に答える 1

2

2 つのオプションがあると思います。.tt の代わりに inlcudes を使用するか、生成されたコードを 1 つのテンプレートから SQL ファイルに書き込みます。

最初のアプローチでは、.tt ファイルの拡張子を .ttinc などに変更し、それらが自動生成に設定されていないことを確認するだけです。そうすれば、別のテキスト テンプレートからインクルードされた場合にのみ実行されます。

次に、次のように含めることができます。

<#@ include file="TestData.ttinclude" #>

もう 1 つのオプションは、生成されたコードを書き出して、1 つのマスター テンプレートからファイルを分離することです。これについては、Oleg Sych が彼のブログに書いています。

于 2013-09-11T16:24:09.643 に答える