`
yangyou230
  • 浏览: 1652654 次
文章分类
社区版块
存档分类

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


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics