Инструкция обновления Sql, есть какой-нибудь способ узнать, что она на самом деле сделала?

#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