Я знаю, это очень простой вопрос, но я нахожусь в процессе переучивания хранимых процедур sql, и вот что произошло:
Я практиковался с некоторыми простыми процедурами удаления / вставки, когдасталкивался с этим: если я ТОЛЬКО вставляю записи:
все в порядке, затем я вызываю процедуру удаления, передавая colum_ID, чтобы идентифицировать запись и удалить ее.
Это сделано правильно, и все в порядке
Затем я вызываю процедуру вставки еще раз, и вставка происходит следующим образом:
И я удаляю, скажемзаписи 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, а не с нулями, индексами и т. Д.