#sql #sql-server-2000
#sql #sql-server-2000
Вопрос:
Обычно я тестирую обновление, выполняя запрос с использованием инструкции where, а затем, убедившись, что оно выполняет то, что я думаю, я хочу, копируя предложение where в инструкцию update и выполняя его. Но есть ли какой-нибудь способ заставить инструкцию возвращать то, что сделало обновление, помимо «обновленных 4 строк»
Комментарии:
1. Какой SQL server вы используете? Для этого потребуется решение, зависящее от конкретной реализации.
2. Какой сервер базы данных вы используете? Какую технологию oyu использует для доступа к ней?
3. можете ли вы показать пример вашего кода? вы хотите, чтобы решение было на чистом sql? (какие другие языки вы используете)
4. Извините, это был расплывчатый вопрос, но я искал любые ответы на все 🙂 Предложение output в T-SQL пока выглядит интригующе!
5. @mellerbeck — Предполагая, что вы правильно отметили, вы не сможете ее использовать и должны будете оставаться заинтригованными!
Ответ №1:
Конечно, взгляните на предложение output в T-SQLhttp://msdn.microsoft.com/en-us/library/ms177564.aspx
Комментарии:
1. Не существует в SQL Server 2000
2. Вы только что добавили этот тег? Мог бы поклясться, что минуту назад ее там не было! : D
3. извините, да, мне нужно привыкнуть к тегированию
Ответ №2:
Вы могли бы загрузить свои записи во временную таблицу / переменную в SQL Server:
DECLARE @Temp TABLE(ID INT)
INSERT INTO @Temp (ID)
SELECT ID
FROM Customer
WHERE AcctBalance > 5000
--inspect as needed
UPDATE Customer
SET AcctBalance = 0
WHERE ID IN (SELECT ID FROM @Temp)
Ответ №3:
Это зависит от сервера, библиотеки, которую вы используете, в php, pdo exec возвращает номер строки, на которую повлияло удаление или обновление cluase