我正在研究数据库(学校项目)。我需要对该数据库进行一些测试(SQL Server 2008 R2)。虽然在存储过程循环不起作用
我试图测试它的恢复。因为我正在构建一个存储过程,所以需要足够长的时间才能使我的电脑崩溃。
问题是,我使用doenst while循环似乎工作。
存储过程:
USE [OnderzoekSQL]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Test_pro_opnemen]
-- Add the parameters for the stored procedure here
@bnummer int OUT,
@i int
AS
BEGIN
SET NOCOUNT ON;
WHILE(@i <= @@ROWCOUNT)
-- Insert statements for procedure here
SELECT TOP 1 @bnummer = accountnumber
FROM dbo.bank
ORDER BY saldo DESC
PRINT @bnummer
UPDATE bank
SET saldo = '0'
WHERE accountnumber = @bnummer
SET @i = @i+1
END
而且表:
CREATE TABLE [dbo].[bank](
[accountnumber] [nvarchar](50) NOT NULL,
[saldo] [real] NULL,
[owner_id] [int] NULL;
约在为nvarchar和ACCOUNTNUMBER的INT之间的差异。它并不重要,因为我只在accountnumber中使用数字。
程序的工作,如果我删除While循环
怎么样在第一回路校验@i参数?如果您发送@ i = NULL,那么首先检查您的条件是否为真。如果@i> 0,则会发生同样的情况。 – valex