我創建了一個在線職員rota應用程序。對於Rota
表,我有一個存儲過程,每週有一個自動增量主鍵。在選定的一週內的每一天將有相同的rota ID
作爲外鍵。如何在另一個過程中使用存儲過程中的參數
我有選擇的第一天沒有問題,但在接下來的幾天返回NULL外鍵RotaID
,因爲我不知道如何RotaID
傳遞到另一個存儲過程來確保RotaID
仍然是7相同每週的天數爲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
正如你可以看到我有在Rota
表宣佈RotaID
,然後作爲DayShift
表的外鍵通過。
我想知道是否有可能將這個通過我的其他存儲過程,這是類似於這一個。
@Brain謝謝你,它爲我提供了一個快速修復。我只是選擇了ROUNDID WHERE shiftdate BETWEEN weekbegin和週末。 – Danny