2007.04.06

BCPのバージョンの違いによる注意点

開発者であれば、SQLServer2005とSQLServer2000を一つのマシン内にインストールした状態で、
開発を行うことがあると思います。

そのような環境で、BCPユーティリティを使用する際に気をつける点があります。

今回説明するのは、SQLServer2005で開発する場合の注意点についてご説明致します。

・前提条件
 1.SQLServer2000が既にインストールされている環境に、後からSQLServer2005を
  インストールした状態とする。
 2.BCPユーティリティでフォーマットファイルを使用し、CSV出力を行う。
 

まず何もせずBCPユーティリティを使用してCSV出力を行います。
すると、フォーマットファイルのバージョンが異なります、というエラーが出てしまいます。
フォーマットファイルについては以下参照
URL:http://msdn2.microsoft.com/ja-jp/library/ms191479.aspx

この対処法として、環境変数を書き換える必要があります。

Path環境変数には、先にインストールしたSQLServer2000のPathが先に記述されるため、
SQLServer2000のツールが優先的に使用されてしまいます。
そのため、BCPコマンドをストアド等で使用すると、SQLServer2000のBCPが
動作してしまいます。

特に指定せずインストールすると
SQLServer2005のツールのパスは C:\Program Files\Microsoft SQL Server\90\Tools\Binn
SQLServer2000のツールのパスは C:\Program Files\Microsoft SQL Server\80\Tools\Binn
になります。どちらのデータベースを使用するかによって、環境変数の優先順位を
変更する必要がありますので気をつけてください。

使用されるBCPのバージョンを調べるには、コマンドプロンプトで bcp /v を実行すると
バージョンを確認することが出来ます。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
nishimaki