0

Filestream を使用してデータベースに画像を挿入しようとしています。テーブルと列を作成し、Insert ステートメントを作成しましたが、次のエラー メッセージが表示され続けます。

メッセージ 515、レベル 16、状態 2、行 2 値 NULL を列 'id'、テーブル 'Racing.dbo.Course_Info' に挿入できません。列はヌルを許可しません。INSERT は失敗します。ステートメントは終了されました。

列 1 - id - 一意の識別子 列 2 - RacecourseID - これは 11 である必要があります 列 3 - filestream_data

私のinsert文の何が問題なのか教えていただけますか?

INSERT INTO Course_Info (RacecourseID, filestream_data)
VALUES ('11', (SELECT * 
   FROM OPENROWSET(BULK N'C:\Users\Administrator\Desktop\Pictures for Database\Racecourses\Cheltenham-Racecourse.jpg', SINGLE_BLOB) as rs))

ありがとう

ウェイン

4

2 に答える 2

1

ここで自分を蹴ろうとしていると思います。

USE Racing
INSERT INTO Course_Info(RaceCourseID,filestream_data)
SELECT 11, * FROM OPENROWSET(BULK N'C:\Users\Administrator\Desktop\Pictures for Database\Racecourses\Cheltenham-Racecourse.jpg', SINGLE_BLOB) rs

一通りだろう。エラー メッセージ RaceCourseID, cannot be null を読む必要があります。これは、入力する必要があることを意味します。

于 2013-03-22T10:55:02.920 に答える
1

エラーはすべてを示しています。行の一意の識別子はnull可能ではなく、列リストで指定していません。もう 1 つの問題は、RacecourseID.

これら 2 つの値を設定するには、クエリを次のように変更します。

INSERT INTO Course_Info (id, RacecourseID, filestream_data)
SELECT newid(), 11, * FROM OPENROWSET(BULK N'filename.jpg', SINGLE_BLOB) as rs))

newid ()は、挿入された行ごとに新しい一意の識別子を生成し、定数 11 がRacecourseIDフィールドに使用されます。

于 2013-03-22T11:05:47.163 に答える