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
上面是我的存儲過程。當傳遞NULL值時,它應該返回0.即使傳遞1個值並且另一個值未傳遞,它應該返回0而不是插入記錄。存儲過程即使在空值保存數據後
任何幫助真的很感激。
你能說清楚你想要什麼嗎?目前它返回0,如果其中任何一個爲null,你希望它做什麼? –
有什麼問題?嘗試將參數的默認值。 – hgulyan
在我的電腦上,這個行爲就像你描述的那樣。也許我不理解這個問題?當任何一個值爲null時,它返回0,如果RoleName已經存在,它也返回0。當'RoleName'非空並且'Status'非空並且'RoleName'不存在時它返回'1'。這與你想要達到的目標有什麼不同? –