# 115995, Volta   10.02.2017 16:25:16

Кстати, есть ли спецы по MSSQL?


Вот такая хрень не выполняется

DELETE FROM OUTBOX_DATA
WHERE SEQNO NOT IN (SELECT OUTBOX_DATA_SEQNO FROM OUTBOX_STATUS)

по причине

The DELETE statement conflicted with the REFERENCE constraint "FKA8BB2AB43B9260A1". The conflict occurred in database "CO_E_SYB", table "dbo.OUTBOX_STATUS", column 'OUTBOX_DATA_SEQNO'.

хотя по идее должна в любом случае ибо

ALTER TABLE [dbo].[OUTBOX_STATUS] WITH CHECK ADD CONSTRAINT [FKA8BB2AB43B9260A1] FOREIGN KEY([OUTBOX_DATA_SEQNO])
REFERENCES [dbo].[OUTBOX_DATA] ([SEQNO])
GO

т.е. в условии DELETE по идее исключены значения, которые залочены ключом.

самое удивительно что
SELECT * FROM OUTBOX_DATA
WHERE SEQNO NOT IN (SELECT OUTBOX_DATA_SEQNO FROM OUTBOX_STATUS)

выдает 0 rows.


В самих базах кол-во записей измеряется в миллионах, вносить изменения в структуру ни ключей ни колонок нельзя, все в продакшне.
Подозрения на возможные locks других процессов, но пока в этом направлении не нарыл.

Copyright ©2011, Гостевая 29 Сектора