OPENROWSET関数を使用したインサート方法
現在「vs.net2010 C#」を使用してプログラムを作成しております。
連携するデータベースに「SQL server2010 R2」を使用し、以下の構成のエーブルへデータをインサートしたいと思っているのですが、2点どうしても解決出来ない問題が発生してしまいどうにも原因が分からない状態です。
初心者の為、初歩的な事があまり分かっておらず、大変恐縮ですが、対応方法をご存じの方がいらっしゃいましたら、ご教授頂ければと思います。
■テーブル構成
テーブル名:test
・ID UNIQUEIDENTIFIER PRIMARY KEY
・FILE_NAME1 VARCHAR(20)
・FILE_DATA1 VABINARY(MAX)
・FILE_NAME1 VARCHAR(20)
・FILE_DATA1 VABINARY(MAX)
■発生している問題
(1)webアプリの画面からファイルを参照し、そのファイルパスを取得し、インサートの際に利用しているのですが、パスの間にスペースが入っている為か下記のようなエラーが発生してしまいます。
・実行SQL
insert into test
(ID
,FILE_NAME1
,FILE_DATA1
,FILE_NAME1
,FILE_DATA1)
select
NEWID()
,null
,null
,'Book1.xls'
,x.* from OPENROWSET(BULK N'C:\Documents and Settings\USER\デスクトップ\Book1.xls', SINGLE_BLOB)AS x
「ファイル"ファイルパス"を開けなかったので、一括読み込みできません。オペレーティングシステムエラーコード 5(アクセスが拒否されました)」
C:直下等にファイルを移し実行すると正常にインサート出来るので、パスのスペースが原因だと考えているのですが、解決策を調べてもよくわかりませんでした・・・
(2)インサートの際に「VABINARY」列が複数ある時の記述方法について
1 insert into test
2 (ID
3 ,FILE_NAME1
4 ,FILE_DATA1
5 ,FILE_NAME1
6 ,FILE_DATA1)
7 select
8 NEWID()
9 'Book1.xls'
10 ,x.* from OPENROWSET(BULK N'C:\Documents and Settings\USER\デスクトップ\Book1.xls', SINGLE_BLOB)AS x
11 ,'Book2.xls'
,12 y.* from OPENROWSET(BULK N'C:\Documents and Settings\USER\デスクトップ\Book2.xls', SINGLE_BLOB)AS y
上記のように「VABINARY」列が複数ある時に、上の9.10行目は問題ないようなのですが、以下の11.12行目が構文エラーとなってしまいす。
本当は12行目以降にも、新しく列を作成し、インサートしたいと思っておりますが、10行目以降は
初歩的な記述方法の問題かとは思うのですが、自身の理解不足も相まって調べても解決できない状態です。
どなたかお力をお貸し頂けませんでしょうか?
以上、宜しくお願い致します。