/****** 对象: 存储过程 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判断,不知道是不是这样子用
谢谢!
--申请推荐高招
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判断,不知道是不是这样子用
谢谢!
2.@@ROWCOUNT的值由哪次执行影响的,是不确定的。
2.最好加上 BEGIN END
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
BEGIN
SELECT
@gold=Gold
FROM
UserLogin
WHERE
UserId=@userid
ELSE SELECT
@result=-1
END
IF @gold>=20
BEGIN
EXECUTE ApplyGaoZhao2 @gaozhaoid,@userid
ELSE SELECT
@result=-2
END
IF @@ROWCOUNT >= 1
BEGIN
SELECT
@result=1
ELSE SELECT
@result=0
END
GO是这样子弄吗?
但是我这样弄之后,总是报语法错误
“在ELSE关键字周围有语法错误”
2.@@ROWCOUNT的值由哪次执行影响的,是不确定的。有什么办法确定.@@ROWCOUNT的值吗??
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
BEGIN
SELECT
@gold=Gold
FROM
UserLogin
WHERE
UserId=@userid
END
ELSE SELECT
@result=-1
IF @gold>=20
BEGIN
EXECUTE ApplyGaoZhao2 @gaozhaoid,@userid
END
ELSE SELECT
@result=-2GO
我怎么才可以知道上面的所有的语句都已经执行了呢
这个该怎么改好呢?
IF @@ROWCOUNT >= 1
BEGIN
SELECT
@result=1
END
ELSE SELECT
@result=0
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
BEGIN
SELECT
@gold=Gold
FROM
UserLogin
WHERE
UserId=@userid
IF @gold>=20
BEGIN
EXECUTE ApplyGaoZhao2 @gaozhaoid,@userid
SELECT @result = 1
END
ELSE SELECT
@result=-2
END
ELSE SELECT
@result=-1
GO感觉已经改的差不多了,请高手再帮我看看,谢谢·