Можете ли вы помочь мне с этой хранимой процедурой? Моя проблема: когда я создаю учетную запись, моя хранимая процедура работает отлично, но когда я создаю вторую учетную запись в таблице 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 для лучшего понимания проблемы