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が返されます。null値がデータを保存した後でもストアドプロシージャ
本当にありがとうございます。
あなたは何をしたいですか?現在のところ、いずれかがnullの場合は0を返し、代わりに何をしたいですか? –
何が問題なのですか?パラメータのデフォルト値を設定してください。 – hgulyan
私のコンピュータでは、これはあなたが記述しているように動作します。多分私はその質問を理解していないでしょうか?いずれかの値が 'null'の場合は' 0'を返し、 'RoleName'がすでに存在する場合は' 0'も返します。 'RoleName'がnullでなく、' Status'がnullでなく、 'RoleName'がすでに存在していないときに' 1'を返します。これは達成しようとしているものとはどのように違いますか? –