我创建了2个表student and course
。
学生表是(student_id, student_name,.....).
课程表为(course_id, student_id,......)
。填写student and course
表的Windows表单是相同的
我可以将学生数据插入学生表中。
现在,我的问题是如何填写课程表中的student_id,因为我不知道student_id)?
到目前为止,我可以单独插入学生和课程数据,将课程表中的student_id留空。
Dim query As String = "INSERT INTO tbl_student (student_name, student_address, student_gender,student_dob,student_phone)" & _
"VALUES (" & _
"'" & name & "'," & _
"'" & address & "'," & _
"'" & gender & "'," & _
"'" & dob & "'," & _
"'" & phone & "'," & _
"'" & phone & "' )"
Dim query1 As String = "INSERT INTO tbl_course (student_id, course_name)" & _
"VALUES (" & _
"'" & student_id & "'," & _
"'" & cname & "' )"
我不确定要填写第二个查询的student_id。第一个表中的student_id是一个自动增量字段。
答案 0 :(得分:1)
在第一个INSERT中,您可以添加OUTPUT-Clause以获取当前INSERT的Student_id,而无需额外请求。您只需要处理输出。
INSERT INTO ....
OUTPUT inserted.student_id
VALUES (...);
如果INSERT因密钥冲突而失败,SQL-Server会返回一个空的结果集。
如果使用SCOPE_IDENTITY(),则可能是因为插入失败而从先前插入的学生获取ID。所以我建议使用OUTPUT