sql >> データベース >  >> RDS >> Sqlserver

sqlproj (SQL Server 2012) スクリプトで msbuild プロパティを使用する方法

    SQL Server 2012 sqlproj (SSDT データベース プロジェクト) では、公開プロファイルを使用します。データベース プロジェクトを右クリックし、[公開] を選択して開始できます。

    次に、必要なオプションを設定して、プロジェクトのいわゆる公開プロファイルに保存できます。このプロファイルをダブルクリックすると、正しいオプションが設定された公開ウィザードが起動します。

    発行プロファイルには、sqlcmd 変数のハードコードされた値を含めることができます:

    <ItemGroup>
        <SqlCmdVariable Include="ProjectDirectory">
            <Value>UNKNOWN</Value>
        </SqlCmdVariable>
    </ItemGroup>
    

    必要に応じて、ビルド中にこれらを動的な値で更新できます。 msbuild プロジェクトで:

    <Target Name="SetProjectDirectoryInPublishXml">
        <ItemGroup>
            <Namespaces Include="nsMsbuild">
                <Prefix>nsMsbuild</Prefix>
                <Uri>http://schemas.microsoft.com/developer/msbuild/2003</Uri>
            </Namespaces>
        </ItemGroup>
        <ItemGroup>
            <SSDTPublishFiles Include="$(SolutionBinFolder)\**\*.publish.xml" />
        </ItemGroup>
        <MSBuild.ExtensionPack.Xml.XmlFile Condition="%(SSDTPublishFiles.Identity) != ''"
                                       TaskAction="UpdateElement"
                                       File="%(SSDTPublishFiles.Identity)"
                                       Namespaces="@(Namespaces)" 
                                       XPath="//nsMsbuild:SqlCmdVariable[@Include='ProjectDirectory']/nsMsbuild:Value" 
                                       InnerText="$(MSBuildProjectDirectory)"/>
    </Target>
    

    これには、XML を更新するための拡張機能が必要です。 msbuild 拡張パックを使用しています。

    このメカニズムのクレジットは ジェイミー・トムソン




    1. Windows上のODBCアプリケーションをQuickBooksOnlineに接続する

    2. PIVOTのパーツを説明してください

    3. OracleシンドライバとOCIドライバ。長所と短所?

    4. SQLでCASEステートメントを作成する方法