J'essaie de créer une procédure stockée simple que je peux utiliser pour écrire des données dans une table de journal. Je suis un noob dans les procédures stockées, alors qu'est-ce qui me manque ici? Je reçois une erreur en disant:SQL Server: aide avec une procédure stockée simple?
Msg 201, Level 16, State 4, Procedure toLog, Line 0
Procedure or function 'toLog' expects parameter '@messageTime', which was not supplied.
Comment modifier ce code pour obtenir ce travail?
USE <database>
GO
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'logTable')
DROP TABLE dbo.logTable
GO
CREATE TABLE dbo.logTable (
messageTime DATETIME NULL,
etlJobName NVARCHAR(40) NULL,
whereTo VARCHAR(10) NOT NULL,
messag VARCHAR(255) NULL
)
/*************** procedure ************/
--DROP PROC dbo.toLog
CREATE PROCEDURE dbo.toLog
@messageTime DATETIME,
@etlJobName NVARCHAR(60) = 'unknown',
@whereTo NVARCHAR(20) = 'print',
@messag NVARCHAR(255) = 'empty'
AS
BEGIN
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, GETDATE(), 113) + ', ' + @etlJobName + ', ' + @whereTo + ', ' + ', ' + @messag
END
GO
--execution
EXEC dbo.toLog @whereTo = 'log'
Le message d'erreur est clair. @messageTime est le paramètre requis pour votre procédure, devrait être EXEC dbo.toLog @messageTime = getdate(), @messag = 'c'est un test' –