私はSQL Serverのここでは2005SQL挿入-Selectステートメント
でのVisual Basic 6.0を使用するには、私のコードです:
Cn.Execute "INSERT INTO schedule (sch_name, st_id, sch_note)
SELECT '" & txtSchedname.Text & "', st_id, '" & txtNote.Text & "'
FROM scheduletype
WHERE st_name = '" & cboSchedtype.Text & "'"
これは、select文の中へ挿入され、正常に動作します。 2つの入力は[schedule]テーブルに直接保存され、1つの入力は[scheduletype]テーブルから取得されます。
しかし、cboSchedtype.Textに一致するレコードがない場合はどうなりますか?ここで
SELECT st_id
FROM scheduletype
WHERE st_name = '" & cboSchedtype.Text & "'"
は、私が何をしたいです:
I.は、メインの前に(それが存在しない場合にのみ、[scheduletype]テーブルにcboSchedtype.Textの値のための「副挿入」を作りますクエリを挿入することができます)
II。そうでなければ正常に続行する。 (私のコードが正常にこれを行います。)
[MERGE](http://technet.microsoft.com/en-us/library/bb510625.aspx)ステートメントを使用すると思います。 – ain
ああ私はSQL Server 2005を使用しています。マージは2008年の構文です。 – ELM
クエリはSQLインジェクション攻撃に対して脆弱です。 –