存储过程判断查询结果
A. C# 如何判断执行的存储过程查询结果是否为空
一种方法,是在存储过程里面判断,设定一个返回参数来判断,这样效率高,速度快;
当然最简单就是判断返回结果集,比如dr=结果,如果dr==null就是空了。
用F10单步执行跟踪跟踪看看。
B. Mysql 存储过程,获取使用游标查询的结果集
MySQL 存储过程中,使用游标查询,返回的是结果集时,如何查看调用存储过程输出结果呢?
解决方案:存储过程不返回数据,但它能创建和填充另一个表。所以在存储过程运行中创建临时表。该临时表将保存存储过程中生成的结果集,在遍历游标时,用insert保存每条数据到临时表中。后续调用时可以用select语句查询临时表中的存储过程运行结果。
以下有 三种方式 使用游标创建一个存储过程,统计某一部门下的员工信息
方法一:Loop循环
调用存储过程:
方法二:While 循环
调用存储过程:
方法三:REPEAT 循环
调用存储过程:
上述三种实现方法在测试过程中遇到下述问题。
调用存储过程查询临时表输出结果时,会发现多循环了一次,像这样:
解决方法:
在遍历游标查询结果时,先判断游标的结束标志(done) 是否是为1,如果不是1,则向临时表中插入数据。
C. 如何通过执行存储过程,将查询结果显示出来
使用PRINT一般是写程序时观察中间结果,对于你说的这种情况,可以直接用SELECT输出结果,在存储过程里也可以这样。如果是在函数或者触发器里,可以建个测试表,如果是表值函数则可以定义一个表变量。
如果一定要print,那么这样吧:
delcare @number int
declare @course nvarchar(30) --for example
select @number=number,@course=course from choice where studentnumber = '20100001'
print @number
print @course
这是楼上的朋友的劳动成果,望勿见怪
如果一定要PRINT全部的,那么用游标吧:
declare @info varchar(200)
declare @curs cursor
set @curs=cursor scroll dynamic
for
select 'number='+convert(varchar(20),number)+'; course='+convert(varchar(20),course) from choice where sex='F'
open @curs
fetch next from @curs into @info
while(@@fetch_status=0)
begin
print @info
fetch next from @curs into @info
end
D. 如何查看SQL存储过程执行的结果集
打开SQL Server Management Studio找到存储过程所在的数据库。在对象资源管理器详细信息中可以看到存储过程的文件夹。
点击打开这个文件夹可以,在搜索中输入要搜索的存储过程名称。
同样也可以在数据库目录结构处选择存储过程右键菜单中的筛选设置。
在这里可以进行详细的条件筛选设置。将需要查看的存储过程搜索出来。
找到这个SQL存储过程之后,也可以右键点击菜单中的修改,进入SQL存储过程编辑。
查看SQL存储过程过程是否带有参数,因为要执行SQL存储过程时需要使用的参数。
知道SQL存储过程的参考类型和基本功能之后,就可以使用的EXEC 存储过程名+参数来执行SQL存储过程。
最后在下方查看SQL存储过程执行结果。
E. 存储过程怎么判断查询结果是否为空
微软SQL数据库判断:
方法1、
select*from表
if@@rowcount>0
print'查询结果不为空'
else
print'查询结果为空'
方法2、
ifexists(select*from表)
print'查询结果不为空'
else
print'查询结果为空'