Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Skopiować wiersz i zmienić mały podzbiór kolumn?

UWAGA:Ta odpowiedź dotyczy programu SQL Server. tag został dodany do pytania po tej odpowiedzi

Zakładam, że Twoja tabela ma IDENTITY kolumna będąca jednocześnie kluczem podstawowym, zgodnie z zasadami dobrego projektowania. Załóżmy również, że nie mają obliczone kolumny (lub sygnatury czasowe lub dowolny typ, który będzie wymagał większej manipulacji). Załóżmy w końcu, że znasz przynajmniej nazwę tej kolumny ID, co jest standardowe, np. "id ".

Możesz użyć tej sekwencji:

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;

Demonstracja skrzypiec SQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak w Oracle zmienić sesję tak, aby wyświetlała UTF8?

  2. OracleCommand z OracleDependency czeka wiecznie

  3. Wykonaj natychmiast w ramach procedury Oracle

  4. Usuń wiersz podrzędny i nadrzędny za pomocą jednego skryptu SQL

  5. wykonaj natychmiastową sekwencję zmiany nie działa