Как сделать несколько изменений в таблице одновременно в SQL Server - PullRequest
1 голос
/ 30 марта 2012

У меня есть таблица index, которая содержит такие столбцы, как accountno, opendate, name, address, и т. Д.

Я хочу изменить дату открытия некоторых номеров счетов на определенное значение.

Как я могу сделать это сразу?

То есть я должен поставить число некоторых номеров счетов (больше 100) на 01.01.1990.

Но номера счетов разные. Как я могу сделать это в одном запросе?

Ответы [ 2 ]

3 голосов
/ 30 марта 2012

Разве не нравится эта работа?

UPDATE 
  MyIndexTable 
SET 
  opendate = <desired date> 
WHERE 
  accountno IN (
    a1, a2, ..., a100
  );

Если номера ваших счетов не удовлетворяют закрытой формуле, вы все равно должны выписать все 100 из них.

0 голосов
/ 30 марта 2012

Один из способов сделать это - использовать список, разделенный запятыми, или таблицу с идентификаторами записей, которые вы хотите изменить (это работает, только если вы устанавливаете для них одно и то же значение). Вот пример сразделенный запятыми список:

 Update index 
   SET opendate = '1/1/1900'
 WHERE accountno IN (123, 456)

Вы также можете загрузить идентификаторы в таблицу, тогда запрос будет

 update index
   set opendate = '1/1/1900'
 WHERE accountno IN (SELECT accountno from acctnos_table)

Опять же, это работает, только если вы устанавливаете все записи вта же дата.

...