테이블의 모든 값을 SQL의 다른 테이블에 삽입
한 테이블의 모든 값을 다른 테이블에 삽입하려고 합니다.그러나 insert 문은 값을 허용하지만 initial_Table에서 select *를 허용합니다.이것이 가능합니까?
삽입문에는 실제로 이를 수행하기 위한 구문이 있습니다.열 이름을 지정하는 것이 "*"를 선택하는 것보다 훨씬 쉽습니다.
INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...
어떤 이유에서인지 이 게시물은 몇 개의 반대표를 받고 있기 때문에 이 점을 명확히 하는 것이 좋겠습니다.
삽입 대상...에 삽입...SELECT FROM 구문은 삽입하려는 테이블(위 예제의 "new_table")이 이미 존재하는 경우에 사용됩니다.다른 사용자가 말했듯이 SELECT ... INTO 구문은 명령의 일부로 새 테이블을 생성하려는 경우에 사용됩니다.
명령의 일부로 새 테이블을 만들어야 하는지 여부를 지정하지 않았으므로 다음에 삽입...대상 테이블이 이미 존재하는 경우 SELECT FROM(선택 위치)이 좋습니다.
사용해 보십시오.
INSERT INTO newTable SELECT * FROM initial_Table
다음과 같이 하위 쿼리를 사용하여 삽입할 수 있습니다.
INSERT INTO new_table (columns....)
SELECT columns....
FROM initial_table where column=value
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
코드를 입력하지 않아도 되는 더 쉬운 방법이 있습니다(테스트 또는 일회성 업데이트에 적합).
1단계
- 탐색기에서 테이블을 마우스 오른쪽 버튼으로 클릭하고 "상위 100개 행 편집"을 선택합니다.
2단계
- 그런 다음 원하는 행(Ctrl + 클릭 또는 Ctrl + A)을 선택하고 마우스 오른쪽 버튼을 클릭하여 복사할 수 있습니다(참고:"where" 조건을 추가하려면 그리드를 마우스 오른쪽 버튼으로 클릭 -> 창 -> SQL 이제 쿼리를 편집하고 WHERE 조건을 추가할 수 있습니다. 그런 다음 마우스 오른쪽 버튼으로 다시 클릭 -> SQL 실행, 필요한 행을 하단에서 선택할 수 있습니다.)
3단계
- 대상 테이블에 대해 1단계를 수행합니다.
4단계
- 이제 그리드의 끝으로 이동하면 마지막 행에 첫 번째 열에 별표(*)가 표시됩니다(이 행은 새 항목을 추가하는 것입니다).해당 행을 클릭하여 전체 행을 선택한 다음 붙여넣기(Ctrl + V)합니다.셀에 빨간색 별표(저장되지 않음을 나타냄)가 있을 수 있습니다.
5단계
- 삽입 문을 트리거하려면 다른 행을 클릭합니다(빨간색 별표가 사라집니다).
참고 - 1: 열이 대상 표에서와 같이 올바른 순서가 아닐 경우 항상 2단계를 수행하고 대상 표와 동일한 순서로 열을 선택할 수 있습니다.
참고 - 2 - ID 열이 있는 경우 실행SET IDENTITY_INSERT sometableWithIdentity ON
그리고 위의 단계를 따르고, 결국 실행합니다.SET IDENTITY_INSERT sometableWithIdentity OFF
많은 데이터를 영구적으로 전송하는 경우(예: 임시 테이블을 채우지 않는 경우) 테이블 간 매핑에 SQL Server 데이터 가져오기/내보내기를 사용하는 것이 좋습니다.
가져오기/내보내기 도구는 일반적으로 매핑에 유형 변환과 가능한 값 잘라내기가 있는 경우 일반적으로 직선 SQL보다 더 좋습니다.일반적으로 매핑이 복잡할수록 직접 SQL 대신 SSIS(Integration Services)와 같은 ETL 도구를 사용하면 생산성이 향상됩니다.
가져오기/내보내기 도구는 실제로 SSIS 마법사이며 작업을 dtsx 패키지로 저장할 수 있습니다.
저는 이 진술이 당신이 원하는 것을 할 수 있다고 생각합니다.
INSERT INTO newTableName (SELECT column1, column2, column3 FROM oldTable);
Dim ofd As New OpenFileDialog
ofd.Filter = "*.mdb|*.MDB"
ofd.FilterIndex = (2)
ofd.FileName = "bd1.mdb"
ofd.Title = "SELECCIONE LA BASE DE DATOS ORIGEN (bd1.mdb)"
ofd.ShowDialog()
Dim conexion1 = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" + ofd.FileName
Dim conn As New OdbcConnection()
conn.ConnectionString = conexion1
conn.Open()
'EN ESTE CODIGO SOLO SE AGREGAN LOS DATOS'
Dim ofd2 As New OpenFileDialog
ofd2.Filter = "*.mdb|*.MDB"
ofd2.FilterIndex = (2)
ofd2.FileName = "bd1.mdb"
ofd2.Title = "SELECCIONE LA BASE DE DATOS DESTINO (bd1.mdb)"
ofd2.ShowDialog()
Dim conexion2 = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" + ofd2.FileName
Dim conn2 As New OdbcConnection()
conn2.ConnectionString = conexion2
Dim cmd2 As New OdbcCommand
Dim CADENA2 As String
CADENA2 = "INSERT INTO EXISTENCIA IN '" + ofd2.FileName + "' SELECT * FROM EXISTENCIA IN '" + ofd.FileName + "'"
cmd2.CommandText = CADENA2
cmd2.Connection = conn2
conn2.Open()
Dim dA2 As New OdbcDataAdapter
dA2.SelectCommand = cmd2
Dim midataset2 As New DataSet
dA2.Fill(midataset2, "EXISTENCIA")
언급URL : https://stackoverflow.com/questions/576441/insert-all-values-of-a-table-into-another-table-in-sql
'programing' 카테고리의 다른 글
MVVM을 사용하여 "창 닫기" 명령 구현 (0) | 2023.05.01 |
---|---|
Postgre에서 기존 *.sql 파일을 가져오는 방법SQL 8.4? (0) | 2023.05.01 |
이클립스 인텔리센스? (0) | 2023.04.26 |
웹 API 라우팅 - api/{controller}/{action}/{id} "dysfunctions" api/{controller}/{id} (0) | 2023.04.26 |
Angular2에서 외부 URL로 리디렉션하는 방법은 무엇입니까? (0) | 2023.04.26 |