Сценарий удаления в SQL server работает странно. Данные, которые не должны быть удалены в соответствии с логикой, удаляются.
У меня есть сценарий удаления sql server в SP, как показано ниже:
----------------------------------------------------
DELETE rvb FROM [dbo].['RVB temp tbl$'] rvb JOIN [dbo].['Actual RVBReferenced BR$'] rvbBr ON rvb.Rid = rvbBr.Rid WHERE NOT EXISTS ( SELECT 1 FROM [dbo].[BR$] tmp WHERE tmp.[ED#] = rvbBr.id )
------------------------------------------------------------
Таблица rvb содержит 225 Rid(Id), а таблица rvbr содержит Rid и sub id, связанные с Rid. Таблица tmp-это главная таблица, содержащая все идентификаторы sub, что означает, что каждый идентификатор sub в rvbr будет находиться в таблице tmp. Приведенный выше сценарий удаления удаляет Rid в таблице rvb, чьи sub Id(присоединяющиеся к rvbr) не находятся в таблице tmp. Но проблема в том, что сценарий удаления удаляет 3 Rid из sub Id, которые присутствуют в таблице tmp, что является странным функционированием.
Может ли кто-нибудь сказать мне, что не так со скриптом удаления?
Что я уже пробовал:
Я пробовал использовать Rtrim и Ltrim перед переменными, думая, что в данных используемых таблиц может быть проблема с пространством, но бесполезно.
phil.o
Замена вашего вопроса бессмысленным содержанием после того, как вам был предоставлен ответ, довольно груба; пожалуйста, не делайте этого.