Просто любопытный, является ли это надежным способом сделать следующее: Я должен получить некоторое значение и затем обновить его, оптимально в одном пакете.
SELECT X FROM Y //will it be returned if executed in one batch?
UPDATE Y SET X...
Выполняемый как Читатель? Я не уверен, возвратится ли это, если существует ОБНОВЛЕНИЕ statetement. И один дополнительный вопрос, что, если я должен был возвратить TRUE или FALSE (или какая-либо другая пара значений) в зависимости от того, успешно выполняются ли или notsome оператор?
Ваш вопрос немного неясен. Если речь идет о том, как обновлять и выбирать в одном операторе, то смотрите ответ gbn.
Если вопрос в том, как выполнить два разных оператора, то можно использовать блок begin-end:
begin
select * from x
update y set a = ...
end
Вы можете установить CommandType в text и использовать ExecuteReader
метод команды. Оба оператора будут выполнены, и вы получите набор результатов из оператора select.
UPDATE Y
OUTPUT --use this
SET X...
Предложение OUTPUT позволяет это для SQL Server 2005+ (я предполагаю, с помощью C #)