我是sql的新手。我通过做一个小应用程序来练习外键关系。它有3个表。一个名为 " stpersonal" 的表格,其中cloumns为 stID,stname,stdateofbirth,stgender 。 stID列是标识列和主键列。由于学生在教育中包含多个字段,我使用名为 " steducation" 的第二个表格,其中字段为 stID,stcollege,stgradyear 。 steducation表中的 stID与stpersonal表中的stID具有外键关系。 第三个表 " staddress" 用于包含 stID,stAddress 列的学生地址。 staddress表中的 stID与stpersonal表中的stID具有外键关系。 我得到了存储过程以获取所有学生的详细信息并删除并插入。但我无法找出更新的存储过程。我尝试了以下方法来创建存储过程
create procedure stupdate
(
@ID int,
@stname nvarchar(50),
@stdateofbirth nvarchar(50),
@stgender nvarchar(50),
@stcollege nvarchar(50),
@stgradyear datetime,
@stAddress nvarchar(50)
)
as begin
update stpersonal
set
stname = @stname,
stdateofbirth = @stdateofbirth,
stgender = @stgender,
stcollege = @stcollege,
stgradyear = @stgradyear,
stAddress = @stAddress
where stpersonal.stID = @ID
end
这是我试过的代码。我试图使用连接,但没有任何结果。所以我希望我能克服这一点。 提前致谢
答案 0 :(得分:0)
试试这个:
UPDATE stpersonal
INNER JOIN steducation ON steducation.stID = stpersonal.stID
INNER JOIN staddress ON staddress.stID = stpersonal.stID
SET stpersonal.stname = @stname,
stpersonal.stdateofbirth = @stdateofbirth,
stpersonal.stgender = @stgender,
steducation.stcollege = @stcollege,
steducation.stgradyear = @stgradyear,
staddress.stAddress = @stAddress
WHERE stpersonal.stID = @ID