你能帮我解决这个存储过程吗?我的问题是:当我创建一个帐户时,我的存储过程运行良好,但是当我在表中创建第二个帐户时evidenta_stundenti_materii,我以前的帐户 ID 翻了一番。
创建帐户时插入多少次:
- 在
tbl_utilizatori:一次 - 在
tbl_studenti:一次 - in
tbl_evidenta_stundenti:创建第二个帐户时重新插入以前的 id 和当前 id
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[insertAnewAccAndANewStudent]
(@email varchar(30),
@parola varchar(30),
@nume varchar(30),
@prenume varchar(30),
@adresa varchar(30),
@nrTelefon varchar(30),
@conectat bit,
@idRol int,
@idSpecializare varchar(30))
AS
BEGIN
INSERT INTO dbo.tbl_utilizatori (email, parola, nume, prenume, adresa, nr_telefon, conectat, id_rol)
VALUES (@email, @parola, @nume, @prenume, @adresa, @nrTelefon, @conectat, @idRol)
IF (@idRol = '1')
BEGIN
DECLARE @id_utilizator int = @@identity
INSERT INTO dbo.tbl_studenti
VALUES (@id_utilizator, @idSpecializare, '0', '1')
END
INSERT INTO dbo.[tbl.evidenta_stundeti_materii] (id_utilizator, id_materie, id_specializare)
SELECT a.id_utilizator, b.id_materie, a.id_specializare
FROM dbo.tbl_studenti a
INNER JOIN dbo.tbl_materii b ON a.id_specializare=b.id_specializare
WHERE a.id_specializare = @idSpecializare
END
英语不好,可以提供ss更好地理解问题