CREATE PROC update_table ( @字段1 VARCHAR(200) , @字段2 VARCHAR(200) , @字段3 VARCHAR(200) ) AS BEGIN UPDATE tablename SET 字段1 = @字段1 , 字段2 = @字段2 , 字段3 = @字段3 WHERE 字段1 IS NOT NULL AND 字段2 IS NOT NULL AND 字段3 IS NOT NULL END
上面传参时应该要处理数据库中的null是DBNULL.Value ,而类中的一般是null 如果上面处理好了就可以看下面存储过程了 create procedure up_t @id int ,@v1 int=null ,@v2 varchar(10)=null ,@v3 varchar(10)=null as begin update tb set v1=case when @v1 is null then [v1] else @v1 end,v2=case when @v2 is null then [v2] else @v2 end,v3=case when @v3 is null then [v3] else @v3 end where id=@id end go
CREATE PROC update_table
(
@字段1 VARCHAR(200) ,
@字段2 VARCHAR(200) ,
@字段3 VARCHAR(200)
)
AS
BEGIN
UPDATE tablename
SET 字段1 = @字段1 ,
字段2 = @字段2 ,
字段3 = @字段3
WHERE 字段1 IS NOT NULL
AND 字段2 IS NOT NULL
AND 字段3 IS NOT NULL
END
上面传参时应该要处理数据库中的null是DBNULL.Value ,而类中的一般是null
如果上面处理好了就可以看下面存储过程了
create procedure up_t
@id int
,@v1 int=null
,@v2 varchar(10)=null
,@v3 varchar(10)=null
as
begin
update tb set v1=case when @v1 is null then [v1] else @v1 end,v2=case when @v2 is null then [v2] else @v2 end,v3=case when @v3 is null then [v3] else @v3 end
where id=@id
end
go