저장 프로 시저를 생성해야하는 문제가 있습니다.삽입 프로 시저 외래 키가 다른 테이블에 있는지 확인하십시오.
CREATE PROCEDURE InsertTrail (
@Mount int,
@Skill varchar(20),
@Snow int,
@Lift int,
@Open char(3),
@AmountReal int,
@AmountFake int,
@Name varchar(50)
)
AS
BEGIN
If not exists (select mountainid from MOUNTAIN where @mount = mountainid)
and
If not exists (select skilllevel from SKILLLEVEL where @skill = SkillLevel)
and
If not exists (select snowmakerID from SNOWMAKER where @snow = SnowMakerID)
and
If not exists (select liftID from LIFT where @lift = LiftID)
BEGIN
INSERT INTO TRAIL (MountainID, SkillLevel, SnowMakerID, LiftID, TOpen, AmountRealSnow, AmountFakeSnow, TrailName)
values
(@Mount, @Skill, @Snow, @Lift, @Open, @AmountReal, @AmountFake, @Name)
Return @@Identity
END
END
나는 확실히 존재를 만들기 위해 필요한 열은 산 테이블의 mountainid의에서 skilllevel 있습니다 : 내 저장 프로 시저가 열이 다른 테이블에 존재하는지 확인하기 위해 필요하지만,이 순간에 내 코드입니다 SKILLLEVEL 테이블, snowmakerertable의 snowmakerid 및 리프트 테이블의 liftID.
더 자세한 정보가 필요하면 알려주세요. 할 수 있으면 도와주세요!
** 열 **이 있는지 확인해야합니까, 아니면 해당 열에 ** 값 **이있는 레코드가 있는지 확인해야합니까? 또한 현재 이러한 값이없는 경우에만 현재 값을 삽입합니다. –
삽입 할 값이 다른 테이블의 레코드와 일치하는지 확인해야합니다. 그래서 먼저 "존재하지 않는다면"에서 "존재할 경우"로 변경해야합니다 –
안녕하세요 조쉬 !!! 도와 줘서 고마워 !! "IF NOT"을 제거하고이 문제를 해결할 수있었습니다. "EXISTS"프로시 저는 이제 성공적으로 작동합니다! :) –