sql server问题1

来源:百度知道 编辑:UC知道 时间:2024/06/21 19:48:11
select *
from xs
where 学号='001216'
上面这条命令是查询,在查询分析器中运行后在其下边会显示相应的结果
而再看这条命令:
declare @student char
set @student='001216'
if(@student<>0)
select *
from xs
where 学号=@student
运行后就不显示结果,而只是显示‘命令执行成功’这几个字,这是为什么?而且即使这个001216的学号在xs表中没有,也会同样显示‘命令执行成功’。请教,谢谢!

declare @student char
这个地方有问题,你声明的变量是char型的,赋值以后只有一个字节长,实际上其值是'0'
所以,最好声明为varchar,长度尽量长,比如varchar(500)
declare @student varchar(500)
set @student='001216'
if(@student<>0)
select *
from xs
where 学号=@student

“命令执行成功”的提示并不表示一定会有结果集。

必须一起执行,不能单条语句执行