不允许从数据类型 datetime 隐式转换为 int 嵌套存储过程

Mik*_*ynn 3 sql sql-server stored-procedures

为什么我在调用另一个 SP 的 SP 时收到此错误。如果我调用 SP 目录它工作得很好。

消息 257,级别 16,状态 3,过程 TEST1,第 25 行
不允许从数据类型 datetime 隐式转换为 int。使用 CONVERT 函数运行此查询。

SP1 -> SP

ALTER PROCEDURE [TEST].[TEST1]
    @EventId INT = NULL,
    @MemberId INT = NULL,
    @Type INT = NULL,
    @Scheduled BIT = 0,
    @DivisionId INT = NULL,
    @DivisionTeamId INT = NULL,
    @Date DATETIME = NULL,
    @GymCourtId INT = NULL
AS
Run Code Online (Sandbox Code Playgroud)

开始设置无计数;设置事务隔离级别读取未提交;

CREATE TABLE #GridGames (
    [Id] [int] NOT NULL,
    [Number] [int] NULL,
    [Round] [int] NULL,
    [GameType] [int] NULL,
.
.
.
.
INSERT INTO #GridGames 
EXEC [TEST].[TEST] @EventId, @MemberId, @Type, @Scheduled, @DivisionId, @DivisionTeamId, @Date, @GymCourtId
Run Code Online (Sandbox Code Playgroud)

SP

ALTER PROCEDURE [TEST].[TEST]
    @EventId INT = NULL,
    @MemberId INT = NULL,
    @Type INT = NULL,
    @Scheduled BIT = 0,
    @DivisionId INT = NULL,
    @DivisionTeamId INT = NULL,
    @Date DATETIME = NULL,
    @GymCourtId INT = NULL
AS
BEGIN
    DECLARE @DayAhead DATETIME;

    IF(@Date IS NOT NULL)
    BEGIN
        SET @DayAhead = DATEADD (DAY , 1 , @Date);
    END

SELECT
        game.Id,
        game.[Type] AS GameType,
        game.[Date], 
Run Code Online (Sandbox Code Playgroud)

更新

第 25 行指向game.[Date]嵌套的存储过程,但这是一个日期时间空类型,我的临时表也有,这是什么?

Mik*_*ynn 6

找出原因,这是因为我在内部 SP 选择语句上的参数顺序与临时表顺序不匹配。