SQL插入 - 选择语句

时间:2011-08-03 09:02:15

标签: sql-server-2005 vb6 insert-select

我将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。否则继续正常。 (我的代码成功地执行了此操作。)

2 个答案:

答案 0 :(得分:1)

如果它不存在,请使用此选项添加scheduletype

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

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

答案 1 :(得分:0)

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

SELECT st_id FROM scheduletype WHERE st_name = ISNULL('" & cboSchedtype.Text & "', subquery)"