Учитывая природу GUID и тот факт, что вы используете его в качестве первичного ключа, то НЕТ, вы не можете сделать это.
Если у вас есть вторичное поле, которое могло бы помочь с упорядочением тогда Да, или если у вас был IDENTITY поле.
На основании DateColumn указанного:
Посмотрите на этот
DECLARE @Table TABLE(
ID uniqueidentifier,
DateVal DateTime
)
INSERT INTO @Table SELECT NEWID(), '06 Jan 2009'
INSERT INTO @Table SELECT NEWID(), '05 Jan 2009'
DECLARE @GUID uniqueidentifier
SELECT @GUID = NEWID()
INSERT INTO @Table SELECT @GUID, '04 Jan 2009'
INSERT INTO @Table SELECT NEWID(), '03 Jan 2009'
INSERT INTO @Table SELECT NEWID(), '02 Jan 2009'
INSERT INTO @Table SELECT NEWID(), '01 Jan 2009'
SELECT *
FROM @Table
DELETE FROM @Table
WHERE DateVal <= (SELECT DateVal FROM @Table WHERE ID = @GUID)
SELECT *
FROM @Table
Что вы имеете в виду предшествующими? – Myles
Записи в таблице не имеют порядка (или, более конкретно, у них есть заказ, но это может быть не тот порядок, который вы принимаете.) Вы должны иметь возможность через запрос явно идентифицировать, что, по вашему мнению, «предыдущая запись» быть. Если вы предполагаете, что все строки в таблице полностью случайны, как бы вы запросили найти «предыдущую» строку? – Joe
В таблице также есть поле даты, которое я могу использовать для заказа записей. Если да, можно ли найти запись записи и удалить ее и записи, которые были перед ней (на основе поля даты). Первая запись, которую мне нужно найти, должна основываться на основном ключе GUID. – Retrocoder