gpt4 book ai didi

sql-server - SQL Server,删除一条或多条记录后,没有在正确的位置插入记录

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:42 24 4
gpt4 key购买 nike

我知道,这是一个很基础的问题,但是我在重新学习sql存储过程的过程中,结果是这样的:

我正在练习一些简单的删除/插入例程,当遇到这个时:如果我只插入记录:

    1. 狗

    2. 猫

    3.霸王龙

    4. 美洲驼

一切正常,然后我调用删除过程,传递 colum_ID 来识别记录并将其删除。

这是正确完成的,一切正常

然后我再次调用插入过程,插入过程如下:

    1. 狗

    2. 猫

    5. snake **现在这是错误的,对吧?**

    4. 美洲驼

我删除了记录 2 和 3,并为 2 条新记录调用插入过程,ir 将“填充”这些位置,第三条记录将在底部,它应该在的位置。

存储过程非常基本:插入

USE [Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InsertData]
@name varchar(50),
@lastname varchar(50)
AS
BEGIN
SET NOCOUNT ON;
insert into dbo.names (name,last_name)
values(@name,@lastname)
select * from dbo.names
END

删除

USE [Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[DeleteData]

@id_record int
AS
BEGIN

SET NOCOUNT ON;

delete from dbo.names where id_record = @id_record
SELECT * from dbo.names
END

那么,是什么导致了这种行为,该表非常基本,但符合 Pkeys,而不是空值、索引等。

最佳答案

从 select 语句返回行的顺序是任意的,除非您使用“order by”子句。

在实践中,顺序将由您的 DBMS 使用的特定实现决定,但您不应假设顺序是稳定的。

关于sql-server - SQL Server,删除一条或多条记录后,没有在正确的位置插入记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3401691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com