Oracle
 sql >> база данни >  >> RDS >> Oracle

Копиране на ред и промяна на малка част от колони?

ЗАБЕЛЕЖКА:Този отговор е за SQL Server. етикетът беше добавен към въпроса след този отговор

Ще приема, че вашата таблица има IDENTITY колона, която също е първичен ключ, според принципите на добрия дизайн. Нека също приемем, че го правине имат изчислени колони (или времеви отпечатъци или друг тип, който ще изисква повече манипулации). Нека накрая приемем, че знаете поне името на тази колона ID, която е стандартна, напр. „id ".

Можете да използвате тази последователност:

SELECT * INTO #tmp FROM tbl WHERE id = @copyfrom;
ALTER TABLE #tmp DROP COLUMN id;
UPDATE #tmp SET
   column1 = ...,
   column2 = ...,
   column3 = ...;  --- the subset of columns you want to change
INSERT tbl SELECT * FROM #tmp;

Демонстрация на SQL Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java SQL изключение:Затворен набор от резултати:следващ, въпреки че нито връзката, нито наборът от резултати не се затварят

  2. REGEXP Подниз Oracle

  3. Извикване на съхранена процедура на Oracle от C#?

  4. Използване на Types.NVARCHAR с JDBC драйвер на oracle за работа с кирилица

  5. В SQL, как мога да генерирам всяка възможна уникална комбинация от 5!56?