存储过程如下,为管理员登录判断(用户名与密码是否正确,且要返回特定列)set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[YmAdmin_Check]
(
@LoginName Varchar(10) ,
@LoginPassword char(32),
@Result_Str bit output
)
as
if exists(select @Result_Str=IsSystemAdmin from Ymadmin where LoginName=@LoginName and LoginPassword=@LoginPassword)
return
如果只用select IsSystemAdmin from Ymadmin where LoginName=@LoginName and LoginPassword=@LoginPassword 查到满足条件的记录却仍然继续,感觉数量记录多时有点不太好!
想用top 1,但看了查询分析器的执行计划,是先扫描完表再返回1条记录,似乎也不符合要求于是打算用if exists一满足立即返回,可问题是我还要得到IsSystemAdmin的值。
结果提示:'=' 附近有语法错误。
谢谢!
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[YmAdmin_Check]
(
@LoginName Varchar(10) ,
@LoginPassword char(32),
@Result_Str bit output
)
as
if exists(select @Result_Str=IsSystemAdmin from Ymadmin where LoginName=@LoginName and LoginPassword=@LoginPassword)
return
如果只用select IsSystemAdmin from Ymadmin where LoginName=@LoginName and LoginPassword=@LoginPassword 查到满足条件的记录却仍然继续,感觉数量记录多时有点不太好!
想用top 1,但看了查询分析器的执行计划,是先扫描完表再返回1条记录,似乎也不符合要求于是打算用if exists一满足立即返回,可问题是我还要得到IsSystemAdmin的值。
结果提示:'=' 附近有语法错误。
谢谢!
解决方案 »
- 求教 sql 批量复制并修改
- 帮我看一下这两条基本的查询语句有什么区别(Oracle数据库的)
- 下面的函數為什麼執行時會出錯的?一直不明白.但里面的語句單獨拿出來卻是運行正确能返回結果的.
- 做数据库,是一年度一个数据库呀?还是把所有年度都放在一个库中好呀?
- 如何在数据库存储、读取单引号以及一些特殊字符
- 如何将多选项列内容生成单项表内容,请大虾多多指教!!!
- 急!!!关于Select Top问题
- 帮忙写个查询的SQL语句 谢谢了~ 50分献上
- 如何比较两个表的结构,表中内容是否相同(Ms SqlServer7.0)?
- 子查询与聚合函数的问题
- 求一个表的记录在另一个表中不存在的行数之和
- 求教,下面sql语句是否等价?
(
@LoginName Varchar(10) ,
@LoginPassword char(32),
@Result_Str bit output
)
as
select top 1 @Result_Str=IsSystemAdmin from Ymadmin where LoginName=@LoginName and LoginPassword=@LoginPassword
return
是不是我对查询分析器的执行计划的图表理解错了。谢谢!
while i<top N
{
select 满足条件的记录;
i++;
}不知用top1有效果吗?