mssql存储过程如何写更新一个字段的存储过程并返回值作为asp页面判断返回的值是什么情况。
举例说明:有一个数据库AA,表BB,表中分别是ID,NAME,SEX,AGE我从asp中传入一个参数(id),这个id进入存储过程后,根据这个id来更新数据库的某个字段(...
举例说明:有一个数据库AA,表BB,表中分别是ID ,NAME ,SEX ,AGE
我从asp中传入一个参数(id),这个id进入存储过程后,根据这个id来更新数据库的某个字段(name)。然后返回一个值(1-成功,2-有重名,3-没有这个id,4-未知错误)
请高手帮我写一下这个存储过程怎么写,而且如果出现错误的话,能实现回滚,防止数据库更新不同步了。同时能告诉我在asp中如何捕捉返回的值,怎么写。小弟在线等了,非常感谢能帮助我的人。谢谢。 展开
我从asp中传入一个参数(id),这个id进入存储过程后,根据这个id来更新数据库的某个字段(name)。然后返回一个值(1-成功,2-有重名,3-没有这个id,4-未知错误)
请高手帮我写一下这个存储过程怎么写,而且如果出现错误的话,能实现回滚,防止数据库更新不同步了。同时能告诉我在asp中如何捕捉返回的值,怎么写。小弟在线等了,非常感谢能帮助我的人。谢谢。 展开
2个回答
展开全部
存储过程如下:
CREATE procedure [dbo].[sp_name]
@a_id bigint,
@a_name varchar(30),
@a_sex varchar(1),
@a_age int,
@v_flag int output
AS
SET NOCOUNT ON
update BB set name = @a_name
where id = @a_id
IF (@@ERROR <> 0)
set @v_flag = @@ERROR -- 发生了错误
ELSE
set @v_flag = 0 -- 成功
1、在ASP脚本里需要检查过程的返回值,如果是 -1,表示更新数据失败, 0=成功。
2、由于更新的只是一个表的数据,所以无所谓回滚。只要操作失败,肯定没有更新到数据库;成功才会更新。
3、存储过程的执行需要五个参数,分别为id、name、sex、age、flag。前面四个是传入参数,最后一个是传出,脚本只需要检测flag的返回值即可。 其SQL语句类似:
exec sp_name id, 'name', 'sex', age, flag
注意由于name、sex都是char类型,所以需要用引号引起来。
CREATE procedure [dbo].[sp_name]
@a_id bigint,
@a_name varchar(30),
@a_sex varchar(1),
@a_age int,
@v_flag int output
AS
SET NOCOUNT ON
update BB set name = @a_name
where id = @a_id
IF (@@ERROR <> 0)
set @v_flag = @@ERROR -- 发生了错误
ELSE
set @v_flag = 0 -- 成功
1、在ASP脚本里需要检查过程的返回值,如果是 -1,表示更新数据失败, 0=成功。
2、由于更新的只是一个表的数据,所以无所谓回滚。只要操作失败,肯定没有更新到数据库;成功才会更新。
3、存储过程的执行需要五个参数,分别为id、name、sex、age、flag。前面四个是传入参数,最后一个是传出,脚本只需要检测flag的返回值即可。 其SQL语句类似:
exec sp_name id, 'name', 'sex', age, flag
注意由于name、sex都是char类型,所以需要用引号引起来。
更多追问追答
追问
@a_sex varchar(1),
@a_age int,
这两个在存储过程中不用定义的吧,因为这两个没涉及到啊。
追答
在过程里面不使用的数据不用传递。我是考虑你给出了四个字段,在过程里恐怕不会只使用name这一个而写的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询