在SQL存储过程中给条件变量加上单引号

在SQL存储过程中给条件变量加上单引号,不加语句就会出问题,以下就是在存储过程中将条件where设置成了动态变化的,给where赋完值再和前面的语句拼接,再execute(SQL)

set @where= ‘(DATEDIFF(day,‘‘‘+CONVERT(varchar(100), @d_start, 23)+‘‘‘,sdate)>=0 and DATEDIFF(day,‘‘‘+CONVERT(varchar(100), @d_end, 23)+‘‘‘,sdate)<=0) and ‘
    +‘  shopid=‘‘‘+@shopid+‘‘‘ and  VenderID in ‘
    +‘ (select vender from tableB where vendertype=‘‘类型‘‘ and shopid=‘‘‘+@shopid+‘‘‘)‘  

-- 何问起 hovertree.com 

@d_start   @d_end,

@shopid

这三个都是调用存储过程传进来的参数,要将这些与varchar类型的拼接在一起就要用每边3个单引号+变量, eg: where shopid=‘‘‘[email protected]+‘‘‘ 这样写才可以。

推荐:http://www.cnblogs.com/roucheng/p/3541165.html

时间: 2024-08-26 08:36:32

在SQL存储过程中给条件变量加上单引号的相关文章

sql中日期参数如何加上单引号

如下的语句,@start和@end就是日期类型的参数 set @sql='select * from '+cast(@viewName as nvarchar) +' where rcy_rq >= '+CONVERT(nvarchar(100), @start, 121)+' and rcy_rq <= '+CONVERT(nvarchar(100), @end, 121) 执行时输入的sql语句如下: select * from view2010 where rcy_rq >= 20

给字符串中的每个字符加上单引号

问题来自: 下面是Insus.NET实现的方法: 给字符串中的每个字符加上单引号

SQL Server 中的时间的加减和时间的比较

最近在写一个项目时,用到了时间的比较和时间的加减,在这里简单说一下,我也是刚接触数据库不久,如有说的不当之处望大家包涵,指正 一.时间的比较 开始的时候我比较时间用的是 Time>GETDATE() 简单粗暴 其实SQL Server有自带的时间比较函数,所以可以用它自带的,还安全也很方便 DATEDIFF(); 我参照的W3School 中对于DATEDIFF函数的解析,具体如下: 语法 DATEDIFF(datepart,startdate,enddate) 其中datepart是只你要比较

SQL存储过程中,传参获取指定条数的记录

假设传入参数 为 @TopCount 直接写 Select top @topcount * from table 是不行的. 可以考虑使用SET ROWCOUNT 示例如下 ALTER PROCEDURE [dbo].[P_CSM_SelectHandleResult] @TopCount int=50 AS BEGIN SET NOCOUNT ON; set rowcount @TopCount SELECT * from HandleResult order by HandleIndex d

怎样SQL存储过程中执行动态SQL语句

MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能,还可以编写更安全的代码.EXEC在某些情况下会更灵活.除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql.1.EXEC的使用 EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处

SQL 存储过程中QUOTED_IDENTIFIER on/off

http://huihai.iteye.com/blog/1005144 在存储过程中经常会有 Sql代码   SET QUOTED_IDENTIFIER on SET QUOTED_IDENTIFIER off SET QUOTED_IDENTIFIER on SET QUOTED_IDENTIFIER off 这样的语句,那么SET QUOTED_IDENTIFIER到底是什么意思,有什么用呢,今天下午仔细的看了一下. 如果SET QUOTED_IDENTIFIER on时,在创建一个表时,

练习生产者与消费者-PYTHON多线程中的条件变量同步

以前练习过,但好久不用,手生,概念也生了, 重温一下.. URL: http://www.cnblogs.com/holbrook/tag/%E5%A4%9A%E7%BA%BF%E7%A8%8B/ ~~~~~~~ 互斥锁是最简单的线程同步机制,Python提供的Condition对象提供了对复杂线程同步问题的支持.Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法.线程首先acquire一个条件变量,然后判断一些条件

SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑

一同事在写脚本时,遇到一个关于LIKE里面使用不同的变量类型导致查询结果不一致的问题,因为这个问题被不同的人问过好几次,索性总结一下,免得每次都要解释一遍,直接丢一篇博客岂不是更方便!其实看似有点让人不解的现象背后实质跟数据类型的实现有关. 下面我们构造这样一个类似的简单案例.如下所, CREATE TABLE TEST (ID        INT IDENTITY(1,1), NAME    VARCHAR(32) )   INSERT INTO dbo.test SELECT 'abc32

线程中的 条件变量 pthread_cond_t

#include <pthread.h> #include <stdio.h> #include <stdlib.h> pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;/*初始化互斥锁*/ pthread_cond_t cond = PTHREAD_COND_INITIALIZER;/*初始化条件变量*/ void *thread1(void *); void *thread2(void *); int i=1; in