我正在研究一个数据库(学校项目)。我需要对该数据库进行一些测试(SQL Server 2008 R2)。
我正在尝试测试它的恢复情况。在那里我正在构建一个存储过程,以便它需要足够长的时间来使我的电脑崩溃。
问题是我正在使用的 while 循环 doenst 似乎有效。
存储过程:
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 的区别。这并不重要,因为我只在帐号中使用数字。
如果我删除 While 循环,该过程将起作用