現在、引数付きのバッチファイルを呼び出して、nant で osql を使用しています。私のnantスクリプトで定義されているプロパティは次のとおりです(いいえ、実際のユーザー名/パスワードの値ではありません):
<property name="project.config" value="debug" />
<property name="server" value="(local)" />
<property name="database" value="Test" />
<property name="username" value="sa" />
<property name="password" value="password" />
次に、ユーザー名/パスワードに基づいて osql 接続を作成します。
<if test="${username==''}">
<property name="osql.connection" value="-E" />
</if>
<if test="${username!=''}">
<property name="osql.connection" value="-U ${username} -P ${password}" />
</if>
次に、これらの値をバッチ ファイルに渡します。
<exec program="setup.bat">
<arg value="${server}"/>
<arg value="${database}" />
<arg value="${osql.connection}" />
</exec>
setup.bat ファイルは osql を使用してデータベースを削除します。
osql -S %1 -d master %3 -Q "IF EXISTS (SELECT * FROM sysdatabases WHERE name = N'%2') DROP DATABASE [%2]"
ユーザー名/パスワードを nant スクリプトに渡さず、代わりに統合セキュリティを使用する場合 (「-E」を osql に指定)、これは正常に機能します。ユーザー名/パスワードを指定すると、nant スクリプトは一時停止します (何らかの入力を待っているように)。SQL 接続マネージャーにログインしてデータベースを削除できるため、正しいユーザー名/パスワードを指定していることはわかっています。
何を試すか、またはこれを行う別の方法について提案があれば教えてください。