sqlserver 针对预处理sql传入参数的处理方式
USE [OA]
GO
/****** Object: StoredProcedure [dbo].[usp_oa_UserMessageProve_Update] Script Date: 12/02/2014 10:45:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
功能:更新用户证明数据,更新用户证明状态
2014.10.28 16:14 am
*/
ALTER PROC [dbo].[usp_oa_UserMessageProve_Update]
@msgid VARCHAR(10)
,@userid VARCHAR(10)
,@state VARCHAR(10)
,@remark VARCHAR(200)
,@filepath VARCHAR(200)
AS
begin
DECLARE
@tablename VARCHAR(100)
,@provered INT
,@sqlstr NVARCHAR(1000)
,@provepath VARCHAR(1000)
,@NOT_PROVE INT --未证明
,@CANNOT_PROVE INT --无法完成
,@HAS_PROVE INT --已证明
--无法证明更新
SELECT @NOT_PROVE=56,@CANNOT_PROVE=58,@HAS_PROVE=57
select @tablename=tablename from ADM_F_GETUSERREADTABLE (@userid)
IF @state = '1' -- state =1 执行无法证明操作
BEGIN
SET @sqlstr = 'update '+@tablename+' set proveremark='''+@remark+''',provered='+CAST(@CANNOT_PROVE AS VARCHAR(10))
+ ' where UserID='+@userid + ' and MessageID='+@msgid
EXEC(@sqlstr)
END
ELSE IF @state = '2' -- state = 2 执行 按钮证明操作
BEGIN
SET @sqlstr = 'update '+@tablename+' set provered='+CAST(@HAS_PROVE AS VARCHAR(10))
+ ' where UserID='+@userid + ' and MessageID='+@msgid
EXEC(@sqlstr)
END
ELSE IF @state = '3' -- state = 3 执行 文件路径更新操作
BEGIN
SET @sqlstr = 'update '+@tablename+' set provered='+CAST(@HAS_PROVE AS VARCHAR(10))+',provepath = isnull(provepath,'''')+ '''+@filepath
+','' where UserID='+@userid + ' and MessageID='+@msgid
EXEC(@sqlstr)
END
ELSE IF @state = '4' -- state = 4 执行文件删除更新操作
BEGIN
SET @sqlstr = 'select @provepath=provepath from '+@tablename+' where UserID='+@userid + ' and MessageID='+@msgid
EXEC sp_executesql @sqlstr,
N'@provepath VARCHAR(1000) output',
@provepath OUTPUT
SET @provepath= REPLACE(@provepath,@filepath+',','')
SET @sqlstr = 'update '+@tablename+' set provepath = '''+@provepath+''''
IF @provepath = ''
BEGIN
SET @sqlstr +=',provered='+CAST(@NOT_PROVE AS VARCHAR(10))
END
SET @sqlstr +=' where UserID='+@userid + ' and MessageID='+@msgid
PRINT @sqlstr
EXEC(@sqlstr)
END
END
sqlserver 针对预处理sql传入参数的处理方式的更多相关文章
- django模板传入参数的处理方式与反向生成url
前端模板传入参数的处理方式 1.传入单个参数: 前端使用href="/sel-{{ row.0 }}.html, url使用url(r'sel-(.+).html',home.index), ...
- mysql 5.7.20 动态sql 传入参数
drop procedure test; delimiter ;; CREATE procedure test() -- 取动态sql的值 -- 目前只测试出,在 where 后面, 可以用 ?,类似 ...
- sql 传入参数为逗号分隔的字符串处理方法
写了个存储过程,中间用到了类似这种写法 Select * From User Where ID In('1,2,3') 其中'1,2,3'是从外面传进来的参数,就这样执行报错:'1,2,3'转换为in ...
- [ Database ] [ Sybase ] [ SQLServer ] sybase 與SQL Server的界接方式
目前我們有個專案Server A安裝了 SQL Server 2012,有個需求需要連線到另外一台Server B上的 Sybase 12.5的view, 先前試過了很多方法都無法連通.主要的原因是因 ...
- C#中SQL语句参数写法
OracleConnection oc=new OracleConnection("data source=osserver;User Id=****;password=**"); ...
- MyBatis传入参数为集合、数组SQL写法
参考:http://blog.csdn.net/small____fish/article/details/8029030 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合 ...
- 动态sql语句和动态传入参数个数
1.可以将要传入的几个参数封装成一个实体类,然后将实体类作为一个参数传入到相应的方法中,这时候就需要这sqlMapper.xml文件中对传入的字段利用<if test=""& ...
- SQLSERVER procedure 传入参数为DataTable类型 C#该怎么写
以上为数据库中存储过程传入参数为table类型 table类型在数据库中存在为: 最后在C#实现方式为:
- 预处理(防止sql注入的一种方式)
<!--- 预处理(预编译) ---><?php/* 防止 sql 注入的两种方式: 1. 人为提高代码的逻辑性,使其变得更严谨,滴水不漏. 比如说 增加判断条件,增加输入过滤等,但 ...
随机推荐
- Autocomplete in ASP.NET MVC3自动检索并填充输入框
1.单一产品情况下使用: public ActionResult GetStockList() { var item = _db.Stocks.ToList().Select(s =>s.Pro ...
- eclipse svn插件
eclipse svn插件 CreateTime--2018年4月22日23:09:42 Author:Marydon 下载地址:eclipse svn插件 将svn插件目录直接拷贝到eclips ...
- 使用loadrunner对https协议(单双向SSL)的web端性能测试 (转)
1.项目背景 1.1 单双向SSL的含义及部署 单向SSL即我们说到的https协议. 特点是,浏览器需要请求验证服务器证书: 基本含义是:一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务 ...
- springmvc多视图配置
http://blog.csdn.net/yaerfeng/article/details/23593755
- HDUOJ-Counting Triangles
Counting Triangles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- c# 网站生成静态页面
在一些需要经常更新页面数据的网站中,一般访问量不是很大的都直接发布的是带后台代码,每次访问都是有数据库交互的.但是一旦访问量增加了,那么这些服务器开销变成本就要考虑进来了,像一些文章,后台编辑后,文章 ...
- AME_PR采购申请单通过AME审批设定和测试(案例)
2014-06-21 Created By BaoXinjian
- Android特性与系统架构
Android特性与系统架构 一.Android特性 • 应用程序框架支持组件的重用与替换 • Dalvik 虚拟机专为移动设备优化 • 集成的浏览器基于开源的WebKit 引擎 • 优化的图形库包括 ...
- 进程控制块PCB结构 task_struct 描述
注:本分类下文章大多整理自<深入分析linux内核源代码>一书,另有参考其他一些资料如<linux内核完全剖析>.<linux c 编程一站式学习>等,只是为了更好 ...
- Axure多人协作
这几天搞<材料採购系统>需求.我们组须要分模块画模型图,可是假设每一个人各自画各自的,最后整合,这样就太麻烦了.小左说Axure能够实现多人协作,于是我就研究了一下.我们组已经在用了.以下 ...