Получение null при вставке данных с помощью scope_identity
Здравствуйте, ребята, можно ли вставить данные дважды? в одной хранимой процедуре данных? я имею в виду, если у меня есть кодсотрудника, имя и отчество должны быть вставлены в таблицу employee и у меня есть еще одно высказывание в мой хранимой процедуры, я хочу, чтобы вставить тот же номер сотрудника в таблице employeeImages, imagesId,кодсотрудника,employeeImages, это будет нормально? потому что я получаю null, но я могу вставить изображение.
кстати, вот мой код.
USE [northwind] GO /****** Object: StoredProcedure [dbo].[spCreateAttrition] Script Date: 01/21/2019 1:14:37 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROC [dbo].[spCreateAttrition] @EmployeeID bigint, @WaveNumber int, @LastName varchar(50), @FirstName varchar(50), @MiddleName varchar(50), @Address varchar(50), @Region varchar(50), @City varchar(50), @ZipCode varchar(50), @ContactNumber int, @EmailAddress varchar(50), @ContactPerson varchar(50), @ContactPnumber int, @ImmediateSupervisor varchar(50), @HireDate date, @StartDate date, @RegularDate date, @Status varchar(50), @AttritionReason varchar(50), @VoluntaryExpiration varchar(50), @NonVoluntary varchar(50), @Remarks varchar(50), @EmployeePicture image AS BEGIN DECLARE @imageID int IF NOT EXISTS(SELECT * FROM employeeAttritions WHERE EmployeeID = @EmployeeID AND WaveNumber = @WaveNumber) BEGIN INSERT INTO employeeAttritions(EmployeeID, WaveNumber, LastName, FirstName, MiddleName, Address, Region, City, ZipCode, ContactNumber, EmailAddress,ContactPerson,ContactPnumber,ImmediateSupervisor, HireDate,StartDate,RegularDate,Status,AttritionReason,VoluntaryExpiration,NonVoluntary,Remarks) VALUES (@EmployeeID, @WaveNumber, @LastName, @FirstName,@MiddleName, @Address, @Region, @City,@ZipCode, @ContactNumber,@EmailAddress,@ContactPerson,@ContactPnumber,@ImmediateSupervisor,@HireDate, @StartDate,@RegularDate,@Status,@AttritionReason,@VoluntaryExpiration,@NonVoluntary,@Remarks) SET @EmployeeID = SCOPE_IDENTITY() END ELSE RAISERROR('EmployeeID (%s) already exists', 16, 0, @EmployeeID) IF NOT EXISTS(SELECT * FROM attritionImages WHERE @imageID = imageID AND EmployeeID = @EmployeeID) BEGIN INSERT INTO attritionImages (EmployeeID, EmployeePicture) VALUES (@EmployeeID, @EmployeePicture) SET @imageID = SCOPE_IDENTITY() END ELSE RAISERROR('ImageID (%s) already exists', 16, 0, @imageID) END
Что я уже пробовал:
я планирую изменить это в заявление join, но я все еще хочу, чтобы это сработало.