请问我这个存储过程没有没有漏洞呢?
/****** 对象: 存储过程 dbo.ApplyGaoZhao 脚本日期: 2003-9-1 10:38:41 ******/
--申请推荐高招
CREATE PROCEDURE ApplyGaoZhao
(
@gaozhaoid INT,
@userid INT,
@result INT OUTPUT
)
AS
DECLARE @Total INT
DECLARE @gold INT
SELECT
@Total=COUNT(*)
FROM
GaoZhaoInfo
WHERE
DATEDIFF(SECOND,ApplyDate,GETDATE()) <604800
IF @Total <30
SELECT
@gold=Gold
FROM
UserLogin
WHERE
UserId=@userid
ELSE SELECT
@result=-1
IF @gold> =20
EXECUTE ApplyGaoZhao2 @gaozhaoid,@userid
ELSE SELECT
@result=-2
IF @@ROWCOUNT > = 1
SELECT
@result=1
ELSE SELECT
@result=0
GO
请问我这个存储过程没有没有漏洞呢?
它总是不能实现我的要求
特别是这几个IF判断,不知道是不是这样子用
谢谢!
------解决方案--------------------功能应该可以的,结构不清晰,If语句内部最好用Begin,End
------解决方案--------------------1.IF @Total> =30 AND @gold <20 ...,@result会赋两个不同的值;不提倡。
2.@@ROWCOUNT的值由哪次执行影响的,是不确定的。
------解决方案--------------------1.注意缩进
2.最好加上 BEGIN END
------解决方案--------------------你会给result赋值好两次如果total大于30 先是-1 然后-2
------解决方案--------------------存储过程里的漏洞?