Проблемы вставки хранимой процедуры - несколько вставок - PullRequest
0 голосов
/ 19 апреля 2020

Можете ли вы помочь мне с этой хранимой процедурой? Моя проблема: когда я создаю учетную запись, моя хранимая процедура работает отлично, но когда я создаю вторую учетную запись в таблице evidenta_stundenti_materii, мой предыдущий идентификатор учетной записи удваивается.

Сколько раз она вставляет при создании учетной записи:

  • в tbl_utilizatori: один раз
  • в tbl_studenti: один раз
  • в tbl_evidenta_stundenti: предыдущий идентификатор и текущий ID повторно вставляются при создании 2-й учетной записи
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

Bad Engli sh, может предоставить ss для лучшего понимания проблемы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...