3 개의 테이블에 삽입해야하는 양식이 있습니다. 저장 프로 시저 (올바르지 않은)를 만들었습니다.ID를 사용하여 3 개의 테이블에 삽입 할 저장 프로 시저
3 테이블 :
1. dbo.Client CityID이 드롭 다운리스트에서 오는
2. dbo.Contact (AddressID, 의해 AddressLine1, ADD2는 가을 CityID) (된 ClientID, CLIENTNAME은 는을 AddressID). 테이블 정의와 일치하지 않는 열 이름 제공된 값의 개수 나 : 오류를 얻기
3. dbo.PointOfCContact (POCID, 이름, ...)
내 저장된 프로 시저
..Create PROCEDURE sp_Clientdetails(
@ClientName varchar(50),
@Addressline1 varchar(50),
@Addressline2 varchar(50),
@CityID INT,
@Firstname varchar(50),
@LastName varchar(50),
@Middlename varchar(50),
@Mob1 numeric(10,0),
@Mob2 numeric(10,0),
@Email1 varchar(50),
@Email2 varchar(50),
@phone varchar(50),
@Extention INT
)
AS
DECLARE @AddressID int, @ClientID int, @POCID int;
Set NOCOUNT OFF
BEGIN TRANSACTION
IF NOT EXISTS(Select 1 FROM dbo.Contact Where [email protected])
BEGIN
INSERT INTO dbo.Contact VALUES (@Addressline1, @Addressline2, @CityID);
SET @AddressID = SCOPE_IDENTITY();
SET @CityID = SCOPE_IDENTITY();
END
ELSE
Select AddressID = @AddressID From dbo.Contact Where [email protected];
IF NOT EXISTS(Select 1 FROM dbo.Client Where [email protected])
BEGIN
INSERT INTO dbo.Client VALUES (@ClientID, @AddressID, @CityID);
SET @ClientID= SCOPE_IDENTITY();
END
ELSE
Select ClientID = @ClientID From dbo.Client Where ClientID = @ClientID;
Insert into dbo.PointOfCContact VALUES (@Firstname, @LastName, @Middlename, @Mob1, @Mob2,
@Email1, @Email2, @phone, @Extention);
SET @POCID= SCOPE_IDENTITY();
COMMIT
. INSERT INTO dbo.Contact VALUES (@Addressline1, @Addressline2, @CityID);
'INSERT INTO dbo.Contact (주소 1, Adddres2, CityID) VALUES (@ 의해 AddressLine1 @ Addressline2, @CityID); SET @AddressID = SCOPE_IDENTITY(); INSERT INTO dbo.Client (클라이언트 ID, 주소 ID, 도시 ID) VALUES (@ClientID, @AddressID, @CityID); ' U 이렇게하면 되겠습니까? – Girish
@Girish 예. 모든 INSERT 문에 열 이름을 추가해야합니다. – podiluska
감사합니다. 내가 너를 뽑았 으면 좋겠어 .. – Girish