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] 表中,一个输入来自 [scheduletype] 表。

但是如果 cboSchedtype.Text 没有匹配的记录怎么办?

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

这是我想做的:

I. 仅当 [scheduletype] 表不存在时(在主插入查询执行其操作之前)将 cboSchedtype.Text 的值的“子插入”

二、否则正常继续。(我的代码成功地做到了这一点。)

4

2 回答 2

1

scheduletype如果它不存在,则使用它添加。

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

完成后,您可以使用您的插入语句,schedule因为您知道该行将存在。

于 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 回答