我创建了一个在线员工名单应用程序。我对一周中的每一天都有一个存储过程,其中包含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
如您所见,我RotaID
在表中声明,Rota
然后作为表中的外键传递DayShift
。
我想知道是否可以将其传递给与此类似的其他存储过程。