1

このt-sqlを使用して、テーブルからサーバーのファイルシステムに直接データを保存しようとしています。

DECLARE @ID int
DECLARE @command varchar(1000)
DECLARE @Name varchar(100)
DECLARE @FileName varchar(100)
DECLARE MyCursor CURSOR FOR 
SELECT Id, [FileName] FROM FilesTable
OPEN MyCursor 

FETCH NEXT FROM MyCursor 
INTO @ID, @Name

WHILE @@FETCH_STATUS = 0
BEGIN

SELECT @FileName = 'd:\Temp\' + convert(varchar(200), @Name)

SET @command = 'bcp "SELECT FileBytes FROM FilesTable WHERE ID = ' + convert(varchar(18),     @Id) + '" queryout "' + @FileName + '" -T -n'

EXEC master..xp_cmdshell @command, no_output

FETCH NEXT FROM MyCursor 
INTO @Id, @Name

END

CLOSE MyCursor 
DEALLOCATE MyCursor 

テーブルは確かなデータでいっぱいです。C#プログラムでこのデータにアクセスすることはできます。高度なオプションを構成して、xp_cmdshellの使用を許可しました。このクエリを実行すると、エラーは発生しませんが、ファイルは書き込まれませんでした。また、ログに何も表示されません(間違った場所を探している可能性がありますか?)

私は何が間違っているのですか?または、「内部で」checdkするために何ができますか?

4

1 に答える 1

0

Patrickからのコメントと、テーブルから個々のファイルにBLOBをエクスポートするための最速の方法での回答に基づいて、ファイルサーバーに画像を保存することができました。

与えられたようなCLR関数を書くことになりました。

于 2012-09-06T08:16:11.650 に答える