SQL Server存储过程 判断参数是否为空 有返回值

  • 判断参数时候有返回值:
    1.if exitsts(参数):缺点 在里面不能直接使用begin end;
    2.if(参数 is null):直接判断是否为空;
    下面这种方法不能判断出空值
    DECLARE @参数 int =0
    if(@参数=0);

  • 有返回值的存储过程:

ALTER PROCEDURE [dbo].[InsertOneUser] 
	
	@OName varchar(50) =NOTnull,
	@Prefecture varchar(20)= NOTnull,
	@Username varchar(20) =NOTnull,
	@Password varchar(20) =NOTnull
	
	/*@returnMessage varchar(200) output */
AS
BEGIN
	Declare @sameOId int,
			@Samename nvarchar(50)=N''
	set @sameOId=(select Id from t_Orgnization where Name= @OName)
	if(@sameOId IS null)
	begin
		exec InsertOneOrg @OName ,@Prefecture,0
		/* 插入组织后重新查询组织id*/
		set @sameOId=(select Id from t_Orgnization where Name= @OName)
		if(@sameOId IS null)
		begin
			return -1
			/*
			set @returnMessage ='组织列表无此组织,插入新组织失败,插入用户失败'
			print('插入组织失败')*/
		end
		else
		begin
			begin
				insert into t_Users (OId,OName,Name,Password,Permission) values (@sameOId,@OName,@Username,@Password,'admin')
				/* set @returnMessage ='组织列表无此组织,插入新组织成功,插入用户成功'*/
				return 2
			end	
		end
	end	
	else    /*组织中有重复的*/
	begin
		/*查询用户是否有重名*/
			set @Samename=(select Name from t_Users where Name=@Username)
			if(@Samename IS NULL)
			begin
				insert into t_Users (OId,OName,Name,Password,Permission) values (@sameOId,@OName,@Username,@Password,'admin')
				
				/*set @returnMessage ='组织列表包含此组织,插入用户成功'*/
				return 1
			end
			else
			begin
				
				/*set @returnMessage ='组织列表包含此组织,用户名重复,插入失败'*/
				return 0
			end
	end 
	
	
END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值