Это будет первое из самых странных вещей, которые я видел. Я пробовал искать «простой t-sql delete, вызывая таймаут», но все заголовки вводят в заблуждение, говорят простые, но нет. Они занимаются удалением миллионов записей или установкой сложных отношений. Я не.Абсолютный самый простой оператор T-SQL DELETE, вызывающий тайм-аут
У меня есть четыре таблицы:
tblInterchangeControl, tblFunctionalGroup, tblTransactionSet, tblSegment
Последние 3 все адъюнкт к tblInterchangeConrol через InterchangeControlID. Настройка отношений отсутствует. как я сказал так просто, как можно было получить.
Процедура выполняет ВЕЬЕТЕ на всех 4-х таблиц, как так ...
DELETE FROM tblSegment
WHERE (ID_InterchangeControlID = @InterchangeControlID)
DELETE FROM tblTransactionSet
WHERE (ID_InterchangeControlID = @InterchangeControlID)
DELETE FROM tblFunctionalGroup
WHERE (ID_InterchangeControlID = @InterchangeControlID)
DELETE FROM tblInterchangeControl
WHERE (InterchangeControlID = @InterchangeControlID)
Странная часть, если я оставлю их в порядке времени ожидания, если удалить их, это не так. Я привязал его к этим операциям удаления, которые являются причиной. Но почему?!
Я включил C#, потому что я вызываю эту процедуру из приложения C#. Я не думаю, что это проблема, но, может быть. Я только говорю, что я так не думаю, потому что мой код работает нормально, когда я удаляю инструкции delete внутри хранимой процедуры. Затем, если я верну их, возникает исключение, которое было отключено.
Скорее всего, у вас есть блокировки, удерживающие это. – Paparazzi
Snap Я думаю, что ты прав. Я не обязательно сталкивался с проблемами блокировки. Это все происходит в цикле, который создает записи, которые я также пытаюсь удалить, вставка находится в транзакции, а удаление - нет. Я думаю, мне придется немного переработать, чтобы заставить это работать. Я отправлю отчет, как только сделаю некоторый прогресс или получаю больше информации. –
Почему у вас нет каких-либо отношений? Кажется мне, что это было бы хорошим местом, чтобы иметь внешние ключи с каскадным удалением? В качестве побочного примечания ваши соглашения об именах кажутся мне немного странными. Почему ID_InterchangeControlID? И почему префиксы tbl на всех ваших таблицах? –