Давайте представим, что я хочу установить для всех столбцов после первого идентификатора столбца значение 0 и что имена столбцов в таблице, которые я хотел бы сбросить, определены в другой таблице. Для иллюстрации давайте представим, что я работаю с различными валютами, как определено в таблице #tmpFX. Что такое команда SQL 2005 UPDATE, которая позволяет мне устанавливать gbp, eur, jpy и usd равными 0, где ID = 2 на основе (SELECT * from #tmpFX
), который идентифицирует столбцы, которые необходимо обновить?
use tempdb
GO
CREATE TABLE #tmpFX(iso_code VARCHAR(3))
INSERT #tmpFX VALUES('gbp')
INSERT #tmpFX VALUES('eur')
INSERT #tmpFX VALUES('jpy')
INSERT #tmpFX VALUES('usd')
SELECT * FROM #tmpFX
CREATE TABLE #tmpCashVal (id INT, gbp REAL, eur REAL, jpy REAL, usd REAL)
INSERT #tmpCashVal VALUES (1, 0, 0, 0, 1000)
INSERT #tmpCashVal VALUES (2, 0, 0, 2000, 0)
INSERT #tmpCashVal VALUES (3, 500, 0, 0, 0)
SELECT * FROM #tmpFX
SELECT * FROM #tmpCashVal
DROP TABLE #tmpFX
DROP TABLE #tmpCashVal
т.е. строка 2 #tmpCashVal будет читать после команды UPDATE:
id gbp eur jpy usd
2 0 0 0 0
Большое спасибо,
Берти.