首页 > 数据库 >sqlserver where Like传参正确写法

sqlserver where Like传参正确写法

时间:2022-09-20 16:24:01浏览次数:82  
标签:传参 Like sqlserver t1 rownum where select

sqlserver where Like传参正确写法

EventClass:RPC:Completed

TextData:exec sp_executesql N’

CardIDWhere = " and CardID like '%'+ @CardID + '%'";    
else if (BeginDate != null && EndDate == null)
            {
                CreateDateWhere = " and CreateDate between '" + @BeginDate + "' and '5000-01-01'";
            }

这个也是正确的,不过是括号的参数直接匹配的,会有注入漏洞。

----------------------------------------------------------------------------------------------------------------------------

exec sp_executesql N'
            select * from (
             select Row_number() over(order by CreateDate) as rownum,* 
             from ValueCardSaveTradeLog
             )as t1 where t1.rownum>=(@PageIndex-1)*@PageSize+1 and t1.rownum<=(@PageIndex*@PageSize)
                       and CardID like ''%''+ @CardID + ''%''',
N'@CardID nvarchar(4000),@PageIndex int,@PageSize int',@CardID=N'912',@PageIndex=1,@PageSize=10

正确的。

----------------------------------------------------------------------------------------------------------------------------

以下语句,参数里面有单引号,仍然没有解决问题。虽然没有报错,但是没有查询出来数据。

C#参数OpenIdWhereIn字符串:"'ollRst0knVF9Jc7nRp25AEu5edP8','opWpbt2xr1UF1lWm_hOltliUGh20','osxmGwf_0hZfG6JmPFLjzpb-5kB0'"

OpendIdWhereInWhere = "and OpenID in (@OpenIdWhereIn)";
exec sp_executesql N'
            select * from (
             select Row_number() over(order by CreateDate) as rownum,* 
             from ValueCardSaveTradeLog
             )as t1 where t1.rownum>=(@PageIndex-1)*@PageSize+1 and t1.rownum<=(@PageIndex*@PageSize)
                       and OpenID in (@OpenIdWhereIn)',N'@OpenIdWhereIn nvarchar(4000),@PageIndex int,@PageSize 
int',@OpenIdWhereIn=N'''opWpbt2xr1UF1lWm_hOltliUGh20'',''ollRst0knVF9Jc7nRp25AEu5edP8'',''osxmGwf_0hZfG6JmPFLjzpb-5kB0''',
@PageIndex=1,@PageSize=10

搜索

复制

标签:传参,Like,sqlserver,t1,rownum,where,select
From: https://www.cnblogs.com/jankie1122/p/10766535.html

相关文章

  • 计算机安装不同版本sqlserver如何使用
    1.两个版本需要使用不同的实例名称2.设置不同的端口号3.客户端连接方式:ip地址,端口号4.如果需要远程连接,启用出入站的端口号新建入站规则:1出站规则和入站规......
  • abap like 和 type
    like是引用数据对象TYPE是引用数据类型一个最简单的例子TYPES:BEGINOFty_alv,matnrTYPEmara-matnr,maktxTYPEmakt-maktx,ENDOFty_alv......
  • sqlserver 创建分区表(转载)
    我们知道很多事情都存在一个分治的思想,同样的道理我们也可以用到数据表上,当一个表很大很大的时候,我们就会想到将表拆分成很多小表,查询的时候就到各个小表去查,最后进行汇总......
  • sqlserver数据库批量新增修改类
    MSSqlServer数据库批量操作需要引用的命名空间usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Re......
  • linux下.net C#连接Sqlserver
    需要安装两个软件unixODBC和freetds,安装时需要linux已经安装gcc 先安装的是unixODBC将压缩包下载下来,安装在/usr/local/unixODBC目录下1:解压缩安装包tar-zxvf uni......
  • vue-router query和params 传参和接收参数
    1、params方式传递和接收参数//传参this.$router.push({name:'checkDetailInfo',params:{fkdNum:fkdNum,jyayStr:jyayStr,......
  • SQLServer数据库密码已过期问题 处理
    Sqlserver在设置登录账户信息的时候,有个复选框信息会被默认勾上,即强制实施密码策略,默认勾选上的还有强制密码过期。如果勾上了这个强制密码过期后,则你的账户密码在一定时间......
  • SQLServer第九章:视图与索引
    视图:查看来自于一个或多个列的列的集合,一张虚拟表,视图中并不存放任意数据,只存放select语句 查看视图最基本的代码:select*from表名返回一个虚拟表索引:提高查......
  • 2022ICPC网络赛 L LCS-like Problem(DP 子序列自动机)
    LLCS-likeProblem(DP子序列自动机)题目:​ 给出两个串s,t。请找出一个最长的子序列\(s'\),使其与\(t\)的最长公共子序列长度不大于1。输出这个最长的长度。思路:​ 题目......
  • SQLServer第八章:事务 transaction
    事务:是一种机制,独立的工作单元,保证结果只产生成功或失败特性(ACID): 原子性:要么成功,要么失败 一致性:操作前后表中数据是一致的 隔离性:当前事务操作的数据,对......