0

你能帮我解决这个存储过程吗?我的问题是:当我创建一个帐户时,我的存储过程运行良好,但是当我在表中创建第二个帐户时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更好地理解问题

4

0 回答 0