私はオンラインの人事異動アプリケーションを作成しました。テーブルの自動インクリメント主キーを使用して、曜日ごとにストアド プロシージャがありRota
ます。選択した週内の各日はrota ID
、外部キーと同じになります。
選択した最初の日には問題はありませんが、次の日は外部キーに対して NULL を返します。これは、を他のストアド プロシージャに渡して、週次の 7 日間同じままであることを確認するRotaID
方法がわからないためです。RotaID
RotaID
Rota
CREATE PROCEDURE [usp_RotaDay1]
@Week_Begin datetime,
@Week_End datetime,
@1ShiftDate datetime,
@1Day nchar (10),
AS
BEGIN
SET NOCOUNT ON;
DECLARE @RotaID int
IF NOT EXISTS
(
SELECT * FROM Rota
WHERE Week_Begin = @Week_Begin
AND
Week_End = @Week_End
)
BEGIN
INSERT INTO Rota
(
[Week_Begin],
[Week_End]
)
VALUES
(
@Week_Begin,
@Week_End
)
END
SELECT @RotaID = SCOPE_IDENTITY()
IF NOT EXISTS
(
SELECT * FROM DayShift
WHERE ShiftDate = @1ShiftDate
)
BEGIN
INSERT INTO DayShift
(
[RotaID],
[ShiftDate],
[Day]
)
VALUES
(
@RotaID,
@1ShiftDate,
@1Day
)
END
SET NOCOUNT OFF;
END
ご覧のとおりRotaID
、テーブルで宣言されてから、Rota
テーブルの外部キーとして渡されDayShift
ます。
これを、これに似た他のストアド プロシージャに渡すことができるかどうかを知りたいです。