SQL动态更新表字段 传入字段可能为空
小技巧: 项目组有修改产品的基本信息字段 但有时候传入的字段可能为空 也可能不为空 动态修改表中字段.
- USE [BetaProductMarket_DB]
- GO
- IF(EXISTS(SELECT * FROM dbo.sysobjects WHERE id=object_id(N'[dbo].[USP_SaveProductBaseInfo]') AND OBJECTPROPERTY(id, N'IsProcedure')= 1))
- BEGIN
- DROP PROCEDURE [dbo].USP_SaveProductBaseInfo
- END
- GO
- /*
- 作 者:Roni
- 功 能:修改产品基本信息
- 创建时间:2016-5-24
- 摘 要:
- */
- CREATE PROCEDURE [dbo].USP_SaveProductBaseInfo
- @ProductID INT,
- @ProductType TINYINT=0,
- @ProductName VARCHAR(200)=null ,
- @RecommendIndex TINYINT=0 ,
- @Issuer VARCHAR(200)=null,
- @Period TINYINT=0 ,
- @Movement VARCHAR(300)=null ,
- @InvestmentDirection TINYINT=7,
- @YieldsFixed DECIMAL(18, 4)=0 ,
- @YieldsFloat DECIMAL(18, 4)=0 ,
- @YieldsType TINYINT=0 ,
- @Amount DECIMAL(18, 4)=0
- AS
- BEGIN
- UPDATE Tb_Product
- SET UpdateTime=GETDATE(),
- ProductName= CASE WHEN @ProductName IS NULL THEN Tb_Product.ProductName ELSE @ProductName END ,
- ProductType= CASE WHEN @ProductType=0 THEN Tb_Product.ProductType ELSE @ProductType END ,
- RecommendIndex = CASE WHEN @RecommendIndex =0 THEN Tb_Product.RecommendIndex ELSE @ProductType END ,
- Issuer= CASE WHEN @Issuer IS NULL THEN Tb_Product.Issuer ELSE @Issuer END ,
- Period= CASE WHEN @Period=0 THEN Tb_Product.Period ELSE @Period END ,
- Movement= CASE WHEN @Movement IS NULL THEN Tb_Product.Movement ELSE @Movement END ,
- InvestmentDirection= CASE WHEN @InvestmentDirection=7 THEN Tb_Product.InvestmentDirection ELSE @InvestmentDirection END ,
- YieldsFixed= CASE WHEN @YieldsFixed=0 THEN Tb_Product.YieldsFixed ELSE @YieldsFixed END ,
- YieldsFloat= CASE WHEN @YieldsFloat=0 THEN Tb_Product.YieldsFloat ELSE @YieldsFloat END ,
- YieldsType= CASE WHEN @YieldsType=0 THEN Tb_Product.YieldsType ELSE @YieldsType END ,
- Amount= CASE WHEN @Amount=0 THEN Tb_Product.Amount ELSE @Amount END
- WHERE ProductID = @ProductID
- END
SQL动态更新表字段 传入字段可能为空的更多相关文章
- SQL比较两表字段和字段类型
一.问题 业务需要把TB_Delete_KYSubProject表数据恢复到TB_KYSubProject,但提示错误,错误原因是两表字段类型存在不一致 insert into [TB_KYSubPr ...
- sql server 删除表字段和字段的约束
删除数据库表中的字段时,使用了 :alter table 表名 drop column 列名 服务器返回的错误为:Server: Msg 5074, Level 16, State 1, Line 1 ...
- mysql中修改表字段名/字段长度/字段类型详解
在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...
- mysql - 查看表字段和字段描述
1.mysql查看表字段和字段描述 SELECT column_name, column_comment FROM information_schema.columns WHERE table_sch ...
- 【Navicat】获取表结构的DDL语句以及获取更新表字段的操作的DDL
1.获取表结构的DDL语句 2.获取修改表结构某一字段的DDL语句 设计表-修改表字段(记住不要保存)-SQL预览
- Oracle更新表字段时内容中含有特殊字符&的解决方法
今天在做 Oracle表字段更新时出现了特殊字符&,导致无法更新. 这个问题是第二次碰到了,所以在此记录下,以备后用. 举例: update t set col1='A&B' wher ...
- SQL语句修改表字段名/修改字段长度/增加字段/删除字段
修改字段名Exec sp_rename 'zxchem_Suggest.End_Date','Yj_Finish_Date','Column' 修改字段长度Alter Table zxchem_Sug ...
- 使用SQL查看表字段和字段说明
MySql: show full columns from tableName; Sql server: SELECT A.name AS table_name, B.name AS column_n ...
- SQL把a表字段数据存到b表字段 update,,insert
update SYS_Navigation set SYS_Navigation.PARENT_XH = SYS_Power_menu.parent_id,SYS_Navigation.web_tit ...
随机推荐
- linux云计算集群架构学习笔记:用户管理和root用户密码重置
RHEL7用户管理 本节所讲内容: 用户和组的相关配置文件 管理用户和组 RHEL7破解root密码 与windows 相比 LINUX中的用户和账号的作用是一样的. 都是基于用户对访问的资源做控制, ...
- makefile中使用变量
makefile里的变量就像一个变量,变量的作用主要如下: (1)保存文件名列表. (2)保存编译器的参数. makefile中的变量是用一个字符串在makefile中定义的,这个文本串就是变量的值. ...
- http keepalive
转载自: http://www.92csz.com/17/1152.html http keepalive 在http早期 ,每个http请求都要求打开一个tpc socket连接,并且使用一次之后就 ...
- Commons Configuration2 - Quick start guide
原文:http://commons.apache.org/proper/commons-configuration/userguide/quick_start.html Reading a prope ...
- Jersey(1.19.1) - Client API, Ease of use and reusing JAX-RS artifacts
Since a resource is represented as a Java type it makes it easy to configure, pass around and inject ...
- Git CMD - merge: Join two or more development histories together
命令格式 git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit] [-s <strategy>] [-X <st ...
- oracle数据库创建表空间和表临时空间
1:创建临时表空间 create temporary tablespace user_temp tempfile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj ...
- Win7显示隐藏文件,隐藏文件夹怎么显示?如何查看?
隐藏文件技术是木马病毒传播最惯用的手法之一,它们利用大部分网友对基础操作的不熟悉特点,逃过用户的发现和检查,显示隐藏文件的标准设置方法大家都会使用,一旦隐藏问题与病毒木马结合起来,比如典型的autor ...
- 解决TextView在显示文字的时候,一行还没显示满就跳到下一行
转载请注明:转自 http://blog.csdn.NET/u011176685/article/details/48295185 一.问题描述: Android的TextView在显示文字的时候,如 ...
- get方法与post方法的使用
使用get方法获取页面的form内容 新建一个getform.html <html> <head> <title>Using Http Get Method< ...