如何在SQL语句中加引号的问题
一个数据表,结构如下
ALTER PROCEDURE GETTEACHER
@a varchar (50),
@b int,
@c varchar(100) --通过DropDownList获取
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @weekday varchar (50); --星期几
declare @coursenum int; --第几节(eg.一二节为1,三四节为2)
declare @coursename varchar(100);--课程名称
set @weekday=@a
set @coursenum=@b
set @coursename= @c
/*
SELECT teacher.TeacherName, teacher.ID
FROM classCourse INNER JOIN
teacher ON classCourse.TeacherID = teacher.ID INNER JOIN
curriculumSchedule ON classCourse.ClassID = curriculumSchedule.ClassID AND
classCourse.ID =curriculumSchedule.Monday INNER JOIN
course ON classCourse.CourseID = course.ID
WHERE course.ID = @c and curriculumSchedule.CourseNum = @b
*/
declare @sql varchar(5000);--sql
--教授@c(课程名称)的教师ID是否 在@a(eg.星期)@b(eg.上午一二节)有课的教师的ID列表中
set @sql=
--@a(eg.星期)@b(eg.上午一二节)有课的教师的ID列表中
'SELECT teacher.TeacherName, teacher.ID'
+' FROM classCourse INNER JOIN'
+' teacher ON classCourse.TeacherID = teacher.ID INNER JOIN'
+' curriculumSchedule ON classCourse.ClassID = curriculumSchedule.ClassID AND'
+' classCourse.ID = curriculumSchedule.'+@a+' INNER JOIN'
+' course ON classCourse.CourseID = course.ID'
+' WHERE curriculumSchedule.CourseNum ='+ str(@b)
--课程courseid
+' AND course.ID =( SELECT course.ID FROM course '
+' WHERE (course.CourseName ='+@c+') ) '
--根据课程名称查询该课程的教师
+' AND classCourse.TeacherID = (SELECT DISTINCT classCourse.TeacherID '
+' FROM classCourse INNER JOIN '
+' course ON classCourse.CourseID = course.ID '
+' WHERE (course.CourseName ='+@c+') )'
EXEC (@sql);
END
实用存储过程的单步执行,发现字符串没有加引号
问题就在于,在传入参数的时候是没有引号的造成的
解决方法:
加两个单引号
--课程courseid
+' AND course.ID =( SELECT course.ID FROM course '
+' WHERE (course.CourseName ='''+@c+''') ) '
--根据课程名称查询该课程的教师
+' AND classCourse.TeacherID = (SELECT DISTINCT classCourse.TeacherID '
+' FROM classCourse INNER JOIN '
+' course ON classCourse.CourseID = course.ID '
+' WHERE (course.CourseName ='''+@c+''') )'
分享到:
相关推荐
SQL中存储过程中SQL语句的单引号和双引号问题[总结].pdf
在编写自己的程序时,需要实现将数据导入数据库,并且是带参数的传递。 执行语句如下: sql_str = INSERT INTO teacher(t_name, t_info, t_phone, t_email) VALUES\ (\'%s\', \'%s\', \'%s\', \'%s\') % (result, ...
全面的sql语句sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全
Oracle Sql语句转换成Mysql Sql语句java 源码,非常简单,只要给定源oracle sql语句地址,和生成目标文件地址运行即可。
sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明...
sql语句命令sql语句命令sql语句命令sql语句命令sql语句命令sql语句命令
sql server 默认是用单引号标识字符串的,但有很多时候需要用双引号,例如字符串里本来就包含单引号的时候。但往往设置不允许使用双引号,该解决方案一条语句就搞定双引号问题设置。
可是实现SQL的自动生成,再也不用为调式SQL语句错误而烦恼了!
精妙SQL语句精妙SQL语句精妙SQL语句精妙SQL语句精妙SQL语句
sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句...
非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常...
SQL 语句大全 SQL 语句大全 SQL 语句大全
非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK
在项目开发的过程中难免需要打印一下自己拼写的SQL语句,尤其是很长的SQL语句,看起来很不舒服,使用该jar包,打印出来的SQL语句已经被格式化,结构很清晰、简洁,更方便我们调试及分析
Sql语句收藏 - 天尊阁Sql语句收藏 - 天尊阁Sql语句收藏 - 天尊阁Sql语句收藏 - 天尊阁Sql语句收藏 - 天尊阁Sql语句收藏 - 天尊阁
SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全
全面掌握SQL语句 详细的SQL语句介绍 详细的SQL语句介绍 详细的SQL语句介绍 详细的SQL语句介绍
SQL语句测试SQL语句测试SQL语句测试SQL语句测试SQL语句测试SQL语句测试SQL语句测试SQL语句测试SQL语句测试
sql语句sql语句sql语句