При создании этого запроса в окне построителя запросов SQL в Visual Studio (2008):
UPDATE outgoing_messages
SET readstatus = 5
FROM outgoing_messages INNER JOIN
connections ON outgoing_messages.connectionid = connections.connectionid
WHERE (outgoing_messages.msgreference = '103') AND (connections.providerid = 9)
Visual studio знает лучше и делает это, превращая в:
UPDATE outgoing_messages
SET readstatus = 5
FROM outgoing_messages AS outgoing_messages_1 INNER JOIN
connections ON outgoing_messages_1.connectionid = connections.connectionid CROSS JOIN
outgoing_messages
WHERE (outgoing_messages_1.msgreference = '103') AND (connections.providerid = 9)
Который вместо того, чтобы выделять эту 1 запись с определенным msgreference и connectionid, обновляет тонны записей.
Теперь сумасшедшая часть: при использовании визуального построителя запросов и перетаскивания запроса он приводит к точно такому же запросу, но теперь Visual Studio не связывается с ним и выполняет его, и все в порядке. 1009 *
Если я скопирую и снова вставлю его в новое окно запроса, все снова будет повреждено.
Есть ли обходной путь для этого "умного" ограничителя запросов? (Например, выключить?)
Спасибо!
EDIT:
постскриптум это было опубликовано как ошибка в Microsoft. Пожалуйста, начните голосовать за него; ^)
вот ссылка на майкрософт