0

私は VS 2010 データベース プロジェクトを持っており、これを問題なく毎日ローカル開発サーバーにデプロイする予定でした。リリース時期が近づいており、代わりにリモート UAT サーバーへの展開を開始したいのですが、「エラー SQL01268 : ファイルを開けなかったため、一括読み込みできません」というエラーが表示されて失敗しています。これは、次のような行を含む展開後のスクリプトの 1 つにあると思います。

declare @xml xml
set @xml = (select * from OPENROWSET(BULK '$(OutputPath)\XML_1.xml', SINGLE_BLOB) as x);

(この xml は後でテーブルに挿入されます)

ファイルが実際にはリモートサーバー上にないため、これは失敗していると思います。サーバーが展開スクリプトと同じマシン上にあったため、これまでのところ機能していません。

まず、そうですか。次に、配置スクリプトを変更して、これらのxmlファイルを配置の一部として挿入する方法を知っている人はいますか?

4

1 に答える 1

0

可能な解決策がありますが、特にきれいではありません-sqlcmdモード。

ファイルを SQL に含めようとするのではなく、ファイルを実行する前にすべての XML をファイルに含めようとしています。

例えば

set @xml = '<?xml version="1.0" encoding="utf-8" ?>
:r .\xml\XML_1.xml'
';

このアプローチの主な問題は、セットにxml宣言を含める必要があることです.sql cmdコードはそれ自体の行に存在する必要がありますが、xmlファイルの開始と宣言の間に改行を入れることはできません.

于 2012-11-09T09:49:15.870 に答える