这个存储过程怎么不对了?

阿达King哥 2006-05-21 04:06:02

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

错误提示:列名 '计算机' 无效。

*数据表中有'计算机'
...全文
128 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangpei2008 2006-05-21
  • 打赏
  • 举报
回复
这样呢?
Alter procedure aaa
as
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 = ' +char(39)+ @DepName+char(39)
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

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧