по примеру таблицы выше,то останутся только строки 2 и 4Начнём с простого: у таблиц нет номеров строк, есть только порядок сортировки. Поэтому вы должны их однозначно идентифицировать (способов множество, например, самый простой — автоинкрементный целый ID).
те у которых самый большой рейтингСоставляете запрос, группируя по блокам и вычисляя максимальное значение рейтинга. Используйте его как под-запрос при удалении и оператор IN, чтобы не удалять записи, которые ему ответствуют.
синхронизация прошла успешно), но при всем этом и одного компьютера не видноСинхронизация — это получение обновлений с вышестоящего сервера или с сервера MS. Никакого отношения к клиентам-компьютерам не имеет.
Часто, бывает необходимо, подтолкнуть агента WSUS для проверки имеющихся обновлений и немедленной установки. Я для того использую простую команду wuauclt /detecnowОтсюда.
CREATE TRIGGER PersonDelete ON [Person] FOR DELETE AS
BEGIN
SET NOCOUNT ON
-- [dbo].[Variant]
DELETE FROM Variant WHERE (Variant.Kind = 'P') AND (Variant.[Object] IN ( SELECT ID FROM deleted))
-- [dbo].[Internet]
DELETE FROM Internet WHERE (Internet.Kind = 'P') AND (Internet.[Object] IN ( SELECT ID FROM deleted))
END
--
GO
CREATE TRIGGER AttributeValueUpdateDelete ON FilmAttributeValue FOR UPDATE, DELETE AS
BEGIN
SET NOCOUNT ON
UPDATE FilmAttributeGroup
SET Uses = (SELECT COUNT(*) FROM FilmAttributeValue WHERE ([Group] = deleted.[Group]))
FROM FilmAttributeGroup
INNER JOIN deleted ON FilmAttributeGroup.ID = deleted.[Group]
END
--
GO
Что такое UC_Person в данном примере SQL UNIQUE Constraint?Пара ID, LastName уникальна.
...
[ID] [int] IDENTITY(1,1) NOT NULL
...
CONSTRAINT [PK_Persons] PRIMARY KEY CLUSTERED ( [ID] ASC )
...
...
[BirthDay] [datetime] NULL,
[DeathDay] [datetime] NULL,
[Age] [int] NULL AS DATEDIFF( Year, BirthDay, ISNULL( DeathDay, GETDATE()))
+ ( SIGN ( DATEDIFF ( DAY, BirthDay, DATEADD ( YEAR, YEAR( BirthDay )
- YEAR( ISNULL( DeathDay, GETDATE()) ), ISNULL( DeathDay, GETDATE())))) - 1 ) / 2
...