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 ...
随机推荐
- Sorting It All Out
Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...
- JavaFX(二)自定义窗口标题栏
1.问题场景 PC客户端登录界面仿QQ,上边显示图片,下边显示输入框和登录按钮.而JavaFX默认的窗口,不满足需求. 2.解决思路 隐藏窗口默认的标题栏,使用创建label对象,使用css将按钮图片 ...
- How to update FVDI Commander driver to latest V2015.6.2
As FVDI Commander products are upgraded to new versions, I often receive emails from customers askin ...
- ganymed-ssh2使用
通过maven库获取ganymed-ssh2-262.jar,这是一个实现了ssh2协议的工具包,可以远程连接linux机器,执行命令,有些工作全靠它了 示例代码如下: <!--首先要建立连接, ...
- Samba服务详解
Samba文件服务器 本章结构 服务简介 SMB协议 Server Message Block,服务消息块 CIFS协议 Common Internet File System,通用互联网文件系统 S ...
- Web Service 一些对外公开的网络服务接口
商业和贸易: 1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同时查询) Endpoint: http://webservice.webxml.com.cn/WebSe ...
- 如何将 Font Awesome 转成 PNG 图标 详细教程 含源代码
最近因为项目上需要用到这个字体图标,但是它里面的许多也不能完全满足项目需要,因此就考虑将这个图标导出,然后自己再添加一些其他图标使用 搜索了些解决方案,如:http://www.oschina.net ...
- javascript深入理解闭包
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...
- Jackson - Features for configuring Java-to-JSON mapping
Following on/off features are defined in SerializationConfig.Feature (for Jackson 1.x), or Serializa ...
- Linux 命令 - chown: 更改文件的所有者和所属群组
chown 命令用来更改文件或者目录的所有者和所属群组.使用这个命令需要超级用户的权限. 命令格式 chown [OPTION]... [OWNER][:[GROUP]] FILE... chown ...