--[16] 고객등록 : Register.aspx에서 사용
Create Procedure CustomerAdd
(
@CustomerName VarChar(50),
@Phone1 VarChar(4),
@Phone2 VarChar(4),
@Phone3 VarChar(4),
@Mobile1 VarChar(4),
@Mobile2 VarChar(4),
@Mobile3 VarChar(4),
@Zip VarChar(7),
@Address VarChar(100),
@AddressDetail VarChar(100),
@Ssn1 VarChar(6),
@Ssn2 VarChar(7),
@EmailAddress VarChar(50),
@MemberDivision Int,
--위에 매개 변수는 Customers관련, 아래 매개변수는 Membership 관련
@UserID VarChar(25),
@Password VarChar(100),
@BirthYear VarChar(4),
@BirthMonth VarChar(2),
@BirthDay VarChar(2),
@BirthStatus VarChar(2),
@Gender Int,
@Job VarChar(20),
@Wedding Int,
@Hobby VarChar(100),
@Homepage VarChar(100),
@Intro VarChar(400),
@Mailing Int,
@Mileage Int,
@CustomerID Int Output
)
As
Begin Tran CustomerAdd --별칭을 붙여서 트랜잭션 걸기
--첫번째 인서트문...
Insert Into Customers (
CustomerName, Phone1, Phone2, Phone3, Mobile1, Mobile2,
Mobile3, zip, Address, AddressDetail, Ssn1, Ssn2,
EmailAddress, MemberDivision
)
Values (
@CustomerName, @Phone1, @Phone2, @Phone3, @Mobile1,
@Mobile2,@Mobile3, @zip, @Address, @AddressDetail, @Ssn1,
@Ssn2,@EmailAddress, @MemberDivision
)
--바로 위에서 실행된 쿼리문의 Identity 값 반환
Select @CustomerID = @@Identity
-- 위의 내용과 같은 방식 (이와 같은 방식으로 사용 가능)
-- Select @CustomerID = MAX(CustomerID) From Customers
----------------------------------------------------------------------
Insert Into MemberShip
Values (
@CustomerID, @UserID, @Password, @BirthYear, @BirthMonth, @BirthDay,
@BirthStatus, @Gender, @Job, @Wedding,
@Hobby, @Homepage, @Intro, @Mailing,
0, GETDATE(), @Mileage, GETDATE()
)
Select @CustomerID
If @@ERROR > 0
--만약 에러가 발생했다면 2개 인서트 모두 리턴
RollBack Tran CustomersAdd
Commit Tran CustomerAdd
Go |