如何在SQL语句中加引号的问题

如何在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+''') )'
 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值