ALTER PROCEDURE [dbo].[STL_ADDNEWROLE](@ROLENAME VARCHAR(100), @STATUS BIT)
AS
BEGIN
SET NOCOUNT ON;
IF(@ROLENAME IS NULL OR @STATUS IS NULL)
BEGIN
RETURN 0
END
ELSE
BEGIN
IF EXISTS (SELECT [RoleName], [Status] FROM ST_Roles
WHERE [RoleName] = @ROLENAME)
BEGIN
RETURN 0
END
ELSE IF(@ROLENAME IS NOT NULL)
BEGIN
INSERT INTO ST_Roles ([RoleName], [Status]) VALUES(@ROLENAME, @STATUS)
RETURN 1
END
END
END
Ce qui précède est mon proc stocké. Lorsque les valeurs NULL sont passées, elle doit renvoyer 0. Même lorsque 1 valeur est passée et qu'une autre valeur n'est pas transmise, elle doit renvoyer 0 au lieu d'insérer l'enregistrement.procédure stockée même après que la valeur nulle enregistre les données
Toute aide est vraiment appréciée.
Pouvez-vous clarifier ce que vous voulez? pour le moment, il renvoie 0 si l'un est nul, que voulez-vous faire à la place? –
quel est le problème? Essayez de mettre des valeurs par défaut pour les paramètres. – hgulyan
Sur mon ordinateur, cela se comporte comme vous le décrivez. Peut-être que je ne comprends pas la question? Lorsque l'une ou l'autre des valeurs est 'null', elle renvoie' 0' et si 'RoleName' existe déjà, elle renvoie' 0'. Il renvoie '1' quand le' RoleName' est non-nul et le 'Status' est non-nul et le' RoleName' n'existe pas déjà. En quoi est-ce différent de ce que vous essayez d'accomplir? –