web-dev-qa-db-ja.com

SQLServerのvarbinaryにファイルをアップロードする

プログラムを作成せずにSQLServerのvarbinaryにファイルをアップロードする方法はありますか?

4
pupeno

これはあなたのために働くかもしれないように見えます... http://www.databasejournal.com/features/mssql/article.php/3632741/Upload-multiple-files-to-VarBinary-column-in-SQL- Server-2005.htm

INSERT INTO Files(File, Name)
SELECT
    * FROM OPENROWSET(BULK 'C:\file.bin', SINGLE_BLOB) AS File
    "file.bin" AS Name
GO
3
Sam

はい、単一のvarbinaryまたはimage列のみを含む「holding」テーブルを作成する場合は、bcpユーティリティを使用してこのテーブルに直接アップロードできます。これを行う前に、ファイルサイズをバイト単位で知る必要があります。これは、プロンプトの1つに対する答えだからです。

bcp <database_name.schema.table_name> in <your_binary_file> -S server -T

必要に応じて、-Tを適切な認証情報に置き換えます。次に、4つのプロンプトに答えます。

Enter the file storage type of field col [image]:
Enter prefix-length of field col [4]: 0
Enter length of field col [0]: <file_size_in_bytes>
Enter field terminator [none]:
3
David M

サムのリンクをたどって、私はこの運命のバージョンを思いついた:

INSERT INTO Files(File, Name)
SELECT
    * FROM OPENROWSET(BULK 'C:\file.bin', SINGLE_BLOB) AS File
    "file.bin" AS Name
GO

サムの答えは正しい方向に送られたので受け入れています。このコードをその答えに追加する必要があります。

1
pupeno