1

SQL Server 2005 で 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ステートメントへの挿入であり、正常に機能します。[schedule] テーブルに直接保存された 2 つの入力と、[scheduletype] テーブルからの 1 つの入力。

しかし、cboSchedtype.Text に一致するレコードがない場合はどうなるでしょうか。

SELECT st_id
FROM scheduletype
WHERE st_name = '" & cboSchedtype.Text & "'"

これが私がやりたいことです:

I. cboSchedtype.Text の値の「サブ挿入」を [scheduletype] テーブルに作成するのは、それが存在しない場合のみです (メインの挿入クエリが処理を実行する前に)。

Ⅱ.それ以外の場合は、通常どおり続行します。(私のコードはこれを正常に実行します。)

4

2 に答える 2

1

scheduletype存在しない場合は、これを使用して追加します。

insert into scheduletype 
select 'TheScheduleType'
where not exists (select st_name 
                  from scheduletype
                  where st_name = 'TheScheduleType')

schedule行が存在することがわかっているため、それを行った後、insert ステートメントを使用できます。

于 2011-08-04T06:56:31.167 に答える
0

ISNULL: http://msdn.microsoft.com/en-us/library/ms184325.aspx

SELECT st_id FROM scheduletype WHERE st_name = ISNULL('" & cboSchedtype.Text & "', subquery)"
于 2011-08-04T01:55:31.867 に答える