C# SQL存储过程中的一个问题(赋值问题)

来源:百度知道 编辑:UC知道 时间:2024/06/17 20:45:06
CREATE PROCEDURE [dbo].[ABC]
@retcode1 int output,
@retcode2 int output,
@return_value int output
AS
declare @aa int,
@bb int
SELECT @retcode1=MAX("编号"),@retcode2=MAX("合同编号")
FROM "出租人信息表"
set @aa=001
set @bb=100
if (@retcode1=null)
begin
update "出租人信息表"
set [编号]=@aa
select @retcode1=MAX("编号")
from "出租人信息表"
end
else if(@retcode2=null)
begin
update "出租人信息表"
set [合同编号]=@bb
select @retcode2=MAX("合同编号")
from "出租人信息表"
end

这个存储过程我是想让它,首先查询“合同”列和“合同编号”列中是否为空。如果为空就修改数据库里“合同”和“合同编号”列赋值。可是我在SQL中的储存过程的执行时,发现UPDATE SET语句并没有执行成功为“合同”和“合同编号”列赋值。
所以这里请教各位高手,怎么才能成功为其赋值?????
2,3楼的朋友,我都按你们回答的结果修改了,2楼是一样是不能赋值,3楼是出现错误!!

CREATE PROCEDURE [dbo].[ABC]
@retcode1 int output,
@retcode2 int output,
@return_value int output
AS
declare @aa int,
@bb int
SELECT @retcode1=MAX("编号"),@retcode2=MAX("合同编号")
FROM "出租人信息表"
set @aa=001
set @bb=100
if (@retcode1=null)
begin
update "出租人信息表"
set [编号]=@aa
where [编号]=(
select @retcode1=MAX("编号")
from "出租人信息表" )
end
else if(@retcode2=null)
begin
update "出租人信息表"
set [合同编号]=@bb
where [合同编号]=(
select @retcode2=MAX("合同编号"))
from "出租人信息表"
end

直接赋值不用写变量了