存储过程 返回值,简单的存储过程返回值的问题

简单的存储过程返回值的问题 - 故障解答 - 电脑教程网

简单的存储过程返回值的问题

日期:2006-10-20   荐:
简单的存储过程返回值的问题想查询表里符合条件的记录的个数,现在是能返回记录,个数应该怎么返回?例如有表a,想查询符合@c_id条件的记录的个数,应该怎么弄啊??我是新手,写了个存储过程如下,返回的@cols总是null,还有select @cols=@@identity是什么意思?多谢各位!CREATE PROCEDURE pp @c_id char(10),@cols int outASselect * from a where id=@c_idselect @cols=@@identityGOselect @@rowcount和尚大哥,多谢!不过能不能给小弟解释一下select @@rowcount什么意思?我是新手不太明白CREATE PROCEDURE pp @c_id char(10),@cols int output --Output,不是outASBeginselect * from AA where id=@c_idselect @cols=@@RowCount --@@Rowcount ,不是@@identityEndGO--执行Declare @cols IntEXEC pp 1,@cols OutputSelect @cols7. @@ROWCOUNT说明:返回受上一语句影响的行数。语法:@@ROWCOUNT返回类型:integer注释:任何不返回行的语句将这一变量设置为 0 ,如 IF 语句。示例:下面的示例执行 UPDATE 语句并用 @@ROWCOUNT 来检测是否有发生更改的行。>>>>>>UPDATE authors SET au_lname = 'Jones'>>>>>>WHERE au_id = '999-888-7777'>>>>>>IF @@ROWCOUNT = 0>>>>>> print 'Warning: No rows were updated'问题已经解决,多谢一天到晚游泳的鱼,辛苦了!@@identity和=@@RowCount 是什么意思这是SQL的属性吗?有没有人给我解释一下?鱼哥,你这些从哪查的?有资料吗发我一份行吗?我另外开贴给分!select @cols = @@rowcount理解 @@IDENTITY@@IDENTITY 返回最后一个插入 IDENTITY 的值,这些操作包括:INSERT, SELECT INTO,或者 bulk copy。如果在给没有 IDENTITY 列的其他表插入记录,系统将其置为 null。如果有多行记录插入到 IDENTITY 表中,@@IDENTITY 表示最后一个产生的值。如果触发了某个触发器,并且这个触发器执行向另一个带有 IDENTITY 列的表的插入操作,@@IDENTITY 将返回这个由触发器产生的值。如果这个触发器插入的表中不包含 IDENTITY 列,那么 @@IDENTITY 将为 null。如果插入操作失败,@@IDENTITY 值依然会增加,所以 IDENTITY 不保证数据的连续性。@@IDENTITY 是当前连接的全局变量,只对当前连接有效。也就是说,如果断开连接再重新连接后,@@IDENTITY 为 null。以 ADO 来说,@@IDENTITY 在 Connection 对象打开和关闭期间是有意义的,即在 Connection 对象的存在范围内有效。在 MTS 组件中,从打开连接到显式的关闭连接(Connection.Close)或者到调用了 SetAbort,SetComplete之前,在这期间,@@IDENTITY 有意义。使用 Truncate table 语句会使 IDENTITY 列重新开始计算。看联机帮助看联机帮助,另外记得使用Google和百度。
标签: