今天在写存储过程的时候需要从数据库查询一条结果并根据结果为几个参数赋值。以前很少遇到这种情况,偶尔返回对多条的结果集也是用游标进行操作,对只返回一条结果的查询用游标肯定在性能上有一定的影响。经过测试终于找到一个简单的方法,不知道对大家有没有帮助,如果大家有更好的方法请一定指教。
Example:
表结构
test
id cloum1 cloum2
……………………………………
1 a b
2 aa bb
3 cc cc
______________________________________
create proc test
as
declare @a
declare @b
--现在我想从test表中查询id和cloum1两个字段的值并赋给变量@a和@b
select @a=id,@b=cloum1 from test where cloum2='b'
通过以上一举就可以把结果集中值直接赋给多个变量。就一句话,比用游标要方便的多了,而且性能也要好很多,如果返回的是多个结果集,则@a,@b的值为结果集的最后一条记录的值。
Example:
表结构
test
id cloum1 cloum2
……………………………………
1 a b
2 aa bb
3 cc cc
______________________________________
create proc test
as
declare @a
declare @b
--现在我想从test表中查询id和cloum1两个字段的值并赋给变量@a和@b
select @a=id,@b=cloum1 from test where cloum2='b'
通过以上一举就可以把结果集中值直接赋给多个变量。就一句话,比用游标要方便的多了,而且性能也要好很多,如果返回的是多个结果集,则@a,@b的值为结果集的最后一条记录的值。