我将Visual Basic 6.0与SQL Server 2005一起使用
这是我的代码:
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 & "'"
我想这样做:
予。仅当cboSchedtype.Text的值不存在时(在主插入查询执行之前),才将cboSchedtype.Text的值'子插入'设置为
II。否则继续正常。 (我的代码成功地执行了此操作。)
答案 0 :(得分:1)
如果它不存在,请使用此选项添加scheduletype
。
insert into scheduletype
select 'TheScheduleType'
where not exists (select st_name
from scheduletype
where st_name = 'TheScheduleType')
完成后,您可以对schedule
使用insert语句,因为您知道该行将存在。
答案 1 :(得分:0)
ISNULL
:http://msdn.microsoft.com/en-us/library/ms184325.aspx
SELECT st_id FROM scheduletype WHERE st_name = ISNULL('" & cboSchedtype.Text & "', subquery)"