Это потому, что ваш toLog sproc ожидает, что вы предоставите параметр @messageTime, чего вы еще не сделали, и у него нет значения по умолчанию, как у других параметров.
Поскольку вы всегда устанавливаете для @messageTime значение GETDATE () внутри sproc, похоже, что вы просто хотите удалить этот параметр:
CREATE PROCEDURE dbo.toLog
@etlJobName NVARCHAR(60) = 'unknown',
@whereTo NVARCHAR(20) = 'print',
@messag NVARCHAR(255) = 'empty'
AS
BEGIN
IF @whereTo = 'log' OR @whereTo = 'logandprint'
INSERT INTO logTable(messageTime, etlJobName, whereTo, messag)
VALUES (GETDATE(), @etlJobName, @whereTo, @messag)
IF @whereTo = 'print' OR @whereTo = 'logandprint'
PRINT CONVERT(VARCHAR, GETDATE(), 113) + ', ' + @etlJobName + ', ' + @whereTo + ', ' + ', ' + @messag
END
Или, если вы хотите иметь возможность самостоятельно передавать дату:
CREATE PROCEDURE dbo.toLog
@messageTime DATETIME = null,
@etlJobName NVARCHAR(60) = 'unknown',
@whereTo NVARCHAR(20) = 'print',
@messag NVARCHAR(255) = 'empty'
AS
BEGIN
IF (@messagetime IS NULL) SET @messagetime = GETDATE()
IF @whereTo = 'log' OR @whereTo = 'logandprint'
INSERT INTO logTable(messageTime, etlJobName, whereTo, messag)
VALUES (@messageTime, @etlJobName, @whereTo, @messag)
IF @whereTo = 'print' OR @whereTo = 'logandprint'
PRINT CONVERT(VARCHAR, @MessageTime, 113) + ', ' + @etlJobName + ', ' + @whereTo + ', ' + ', ' + @messag
END