这个存储过程怎么不对了?
DECLARE @DepName nvarchar(50)
DECLARE @ClassNo varchar(50)
DECLARE @StudentName nvarchar(50)
SET @DepName = '计算机'
--定义初始化的SQL语句,这个SQL语句用于最基本的查询
DECLARE @Sql Nvarchar(500)
SET @Sql = '
SELECT Stu.StudentID, Stu.ClassNo, Stu.StudentName,Dep.DepName, Sub.SubjectName, Gra.Grades
FROM Student Stu, Department Dep, Subject Sub, Grade Gra
WHERE Stu.DepID = Dep.DepID
AND Gra.StudentID = Stu.StudentID
AND Gra.SubjectID = Sub.SubjectID
'
--根据查询条件修改查询语句
IF @DepName !=''
BEGIN
SET @Sql = @Sql + 'AND Dep.DepName = ' + @DepName
END
IF @ClassNo !=''
BEGIN
SET @Sql = @Sql +' AND Stu.ClassNo = ' + @ClassNo
END
IF @StudentName != ''
BEGIN
SET @Sql = @Sql +' AND Stu.StudentName =' + @StudentName
END
-- print @Sql
EXEC sp_executesql @Sql
Go
错误提示:列名 '计算机' 无效。
*数据表中有'计算机'