1

これが私のスクリプトです:

<?xml version="1.0"?>
<project name="createAndPopulateDB" default="deploy">
    <property name="sql.connstring" value="Provider=SQLOLEDB;Server=G-PC\sqlexpress;Integrated Security=SSPI" />
    <property name="createDB" value="BuildTestDatabase.sql" />
    <property name="populateDB" value="CreateTables.sql"/>
<target name="deploy">
    <echo message="* Connecting to ${sql.connstring}"/>
    <foreach item="File" property="sql.script">
        <in>
            <items>
                <include name="${createDB}" /> 
                <include name="${populateDB}" />
            </items>
        </in>
        <do>
            <echo message="* Executing ${path::get-file-name(sql.script)}"/>
            <sql connstring="${sql.connstring}" delimiter="go" delimstyle="Line" batch="false" source="${sql.script}"/>
        </do>
    </foreach>
</target>
</project>

NAnt スクリプトは、2 つの tsql プログラムを呼び出すことになっています。最初の tsql は、データベースが存在する場合は削除し、存在しない場合は作成するように設計されています。2 番目は、テーブルが存在するかどうかを確認し、存在する場合は削除します。同様に、そうでない場合は、作成されたデータベースに単純なテーブルが入力されます。

私の質問は、populateDB スクリプトを最初に実行するのはなぜですか?

4

1 に答える 1

1

tsql プログラムが実行される順序を決定する最善の方法は、個別のターゲットにアタッチされた depends 属性を使用することであることがわかりました。これにより、あらかじめ決められた順序で実行され、NAnt スクリプトがリポジトリの一部である場合、論理的に非常に簡単に従うことができます。

于 2012-09-09T14:57:17.190 に答える