Хобрук: Ваш путь к мастерству в программировании

Неявное преобразование из типа данных datetime в int не допускается вложенная хранимая процедура

Почему я получаю эту ошибку для 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

НАЧАТЬ УСТАНОВИТЬ NOCOUNT ON; УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ ТРАНЗАКЦИИ READ UNCOMMITTED;

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

СП

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], 

ОБНОВЛЕНИЕ

Строка 25 указывает на game.[Date] во вложенной хранимой процедуре, но это нулевой тип даты и времени, и моя временная таблица также имеет это, что дает?


  • Может быть, ваше определение #GridGames не соответствует набору результатов, созданному TEST.TEST? И об ошибке сообщается в строке 25 TEST1, а не TEST, поэтому код @DayAhead в TEST не имеет значения. 01.05.2014
  • @Damien_The_Unbeliever прав. Проверьте определение #GridGames и сопоставьте его с типом данных результата, полученного с помощью TEST.TEST. 01.05.2014
  • Это определение было сгенерировано из того SP, который сгенерировал таблицу с этим типом, поэтому этого не может быть, а также я не вижу других временных данных, которые могли бы быть проблемой в отношении int, потому что все эти столбцы являются датами. 01.05.2014

Ответы:


1

Выяснил, почему, потому что мой порядок параметров во внутреннем операторе выбора SP не соответствовал порядку временной таблицы.

01.05.2014
Новые материалы

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..