J'ai une procédure stockée dans SQL Server 2008 qui va insérer un enregistrement dans une table.Vérification de la date non valide dans SQL Server stocké Procédure
Le sproc ressemble à ceci:
-- params
@f1 int,
@f2 datetime = null,
@f3 datetime,
@f4 bit = 0
BEGIN
INSERT INTO dbo.table
(fields......)
VALUES
(@params.....)
RETURN @@IDENTITY
END
Avant d'exécuter l'instruction INSERT, je voudrais piéger la valeur datetime de la f2 param. Si f2 n'est pas une date valide, je voudrais la mettre à null.
Je suis flou sur la syntaxe sur la façon de faire cela. Je pensais que ce qui suit suffirait, mais pas si:
--params
@f1..
@f2..
...
IF(ISDATE(@f2) < 1)
SET @f2= NULL
BEGIN
INSERT...
...
END
Quelle est la syntaxe pour le piégeage et la réinitialisation d'une valeur de param avant d'exécuter une instruction INSERT? A propos, la raison qui m'a conduit à trouver une solution à ce problème est que je passe une valeur de date minimale C# de "1/1/0001" à SQLS qui supporte la valeur de date minimale de "1/1/1753".
1 - Je sens overthought ce. Je pensais: «Si le paramètre est un datetime, comment une date invalide va-t-elle aussi loin? – LittleBobbyTables