하나의 SQL Server 저장 프로 시저에서 많은 테이블에 데이터를 삽입하려고합니다. 또한 데이터를 삽입 한 테이블의 ID를 사용하여 이러한 ID를 다른 테이블에 작성하여 많은 관계를 해결합니다.하나의 SQL 쿼리에 이전 테이블의 ID를 사용하는 여러 삽입 방법
이론적으로 논리는 저장 프로 시저에있는 것처럼 보이지만 실행시 첫 번째 삽입 문만 실행되었습니다. 아무도 이걸 도와 줄 수 없습니까?
Create Procedure [dbo].[InsertAllCustomerDetails]
(
[email protected] Bigint output,
@Firstname varchar(100),
@LastName varchar(100),
@Initials varchar(10),
@Title varchar(20),
@DateCreated datetime,
@isDeleted Bit,
[email protected] BIGINT Output,
@ContactNumber Varchar(100),
@ContactTypeID bigint,
@Street Varchar(550),
@AreaID BIGINT,
@isPreferred Bit
[email protected] Bigint OutPut
)
AS
Insert Into Customer
(
FisrtName,
LastName,
Initials,
[Title],
DateCreated,
isDeleted
)
Values
(
@Firstname,
@LastName,
@Initials,
@Title,
@DateCreated,
@isDeleted
)
Declare @CustomerID BIGINT
SELECT @CustomerID = @@IDENTITY
RETURN @CustomerID
--This will now insert the contact details for the customer
Insert Into ContactNumber
(
ContactNumber,
ContactTypeID
)
Values
(
@ContactNumber,
@ContactTypeID
)
Declare @ContactNumberID BIGINT
SELECT @ContactNumberID = @@IDENTITY
--This will insert into the CustomerContactNumber
Insert Into CustomerContactNumber
(
ContactNumberID,
CustomerID
)
Values
(
@ContactNumberID,
@CustomerID
)
--This will insert the address
Insert Into [Address]
(
Street,
AreaID,
isPreferred
)
Values
(
@Street,
@AreaID,
@isPreferred
)
Declare @AddressID BIGINT
SELECT @AddressID = @@IDENTITY
--This will insert the relationship for the customer Address table
Insert into CustomerAddress
(
CustomerID,
AddressID
)
Values
(
@CustomerID,
@AddressID
)
Scope_Identity를 사용해보십시오 (예 : SELECT @CustomerID = @@ SCOPE_IDENTITY) – Praveen