SQL Server : 구조가 다른 다른 테이블의 데이터를 테이블에 삽입하는 쿼리

세레 데 2000

두 개의 다른 데이터베이스에 두 개의 테이블이 있습니다.

내 첫 번째 테이블은 이전 버전이며 두 번째 테이블보다 열이 적습니다.

이전 테이블의 내용을 새 테이블에 복사하고 싶습니다.

이 경우 각 데이터베이스 테이블에는 여러 배포가 있습니다.

각 테이블에 대해 열 이름을 수동으로 쓰지 않고도 이전 테이블에서 새 테이블로 데이터를 빠르게 복사하려면 어떻게해야합니까?

감사!

Avi Turner

다음 코드가 작업을 수행해야합니다. 기본적으로하는 일은 다음과 같습니다.

1. 두 테이블에서 열 이름을 수집합니다.
2. 하나의 테이블에만 존재하는 열을 필터링하기 위해 열 이름을 교차합니다.
3. 쉼표로 구분 된 열 이름 인 문자열을 가져옵니다.
4. 3 단계의 문자열을 사용하여 삽입 명령을 만듭니다.
5. 4 단계에서 명령을 실행합니다.

--BEGIN TRAN

DECLARE @oldName NVARCHAR(50) = 'OldTableName', @newName NVARCHAR(50) = 'newTableName'
DECLARE @oldDBName NVARCHAR(50) = '[OldDBName].[dbo].['+@oldName+']', @newDBName NVARCHAR(50) = '[newDBName].[dbo].['+@newName+']'

/*This table variable will have columns that exists in both table*/
DECLARE @tCommonColumns TABLE(
ColumnsName NVARCHAR(max) NOT NULL
);

INSERT INTO @tCommonColumns

SELECT column_name --,*
FROM information_schema.columns
WHERE table_name = @oldName
AND COLUMNPROPERTY(object_id(@oldName), column_name, 'IsIdentity') = 0 --this will make sure you ommit IDentity columns

INTERSECT

SELECT column_name --, *
FROM information_schema.columns
WHERE table_name = @newName
AND COLUMNPROPERTY(object_id(@newName), column_name,'IsIdentity') = 0--this will make sure you ommit IDentity columns

--SELECT * FROM @tCommonColumns

/*Get the columns as a comma seperated string */
DECLARE @columns NVARCHAR(max)
SELECT DISTINCT 
                @columns  = STUFF((SELECT ', ' + cols.ColumnsName
                                    FROM @tCommonColumns cols

                                      FOR XML Path('')),1,1,'')
FROM @tCommonColumns
PRINT @columns 
/*Create tyhe insert command*/
DECLARE @InserCmd NVARCHAR(max)
SET @InserCmd = 
'INSERT INTO '+@newDBName +' ('+@columns +')
SELECT '+@columns +' FROM '+@oldDBName

PRINT @InserCmd
/*Execute the command*/
EXECUTE sp_executesql @InserCmd
--ROLLBACK

이 스크립트 는 이전 테이블에는 충족되었지만 새 테이블에는없는 FOREIGN KEY 제약 조건있는 경우 실패 할 수 있습니다 .

편집 :
을 생략하도록 쿼리가 업데이트되었습니다 Identity.

편집 2 :
테이블에 대해 서로 다른 데이터베이스를 지원하는 업데이트 쿼리 (당신이 설정된하게 @oldName, @newName, @oldDBName, @newDBName변수는 실제 자격 증명과 일치).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 테이블 데이터를 추가하는 SQL 쿼리

분류에서Dev

다른 테이블에서 관련 데이터를 가져 오는 SQL 쿼리

분류에서Dev

SQL 쿼리 2는 테이블의 조건에 따라 여러 테이블 데이터를 가져옵니다.

분류에서Dev

다른 테이블의 테이블에 SQL 삽입 데이터

분류에서Dev

SQL 단순 쿼리를 사용하여 다른 테이블의 데이터를 삽입하는 방법

분류에서Dev

4 개의 다른 테이블에서 데이터를 가져 오는 SQL 쿼리

분류에서Dev

SQL Server : 구조가 다른 4 ~ 5 개의 테이블 조인

분류에서Dev

SQL Server의 다른 테이블에서 데이터를 삽입하는 동안 PARTITION BY 여러 열

분류에서Dev

다른 테이블에 SQL Server 트리거 정보 삽입

분류에서Dev

SQL Server 2008 쿼리는 테이블 데이터를 다른 데이터로 이동

분류에서Dev

첫 번째 쿼리 ID가 다른 테이블에서 사용되는 한 번의 클릭으로 두 테이블에 데이터를 삽입하는 방법

분류에서Dev

다른 테이블에 외래 키가없는 SQL 쿼리

분류에서Dev

SQL-다른 테이블의 값 조회를 사용하여 선택 쿼리에 삽입

분류에서Dev

SQL Server 데이터베이스의 제약 조건을 위반하지 않고 한 테이블에서 다른 테이블로 레코드 삽입

분류에서Dev

다른 테이블의 조건을 사용하여 테이블에서 SQL 쿼리

분류에서Dev

다른 테이블에서 2 개의 SQL 쿼리 조인

분류에서Dev

두 개의 다른 테이블에 데이터를 삽입하는 SQL

분류에서Dev

두 개의 다른 테이블에 데이터를 삽입하는 SQL

분류에서Dev

조건에 따라 한 테이블에서 다른 테이블로 레코드를 삽입하는 PSQL 쿼리

분류에서Dev

SQL Server : 다른 테이블에서 선택하여 테이블에 삽입

분류에서Dev

테이블에서 데이터를 복사하고 다른 SQL Server 데이터베이스에 삽입

분류에서Dev

SQL Server 2008에서 CTE 쿼리를 다른 테이블과 조인하는 방법

분류에서Dev

동일한 ID를 가진 다른 테이블에서 모든 데이터를 가져 오는 SQL 쿼리

분류에서Dev

mysql 쿼리를 반복하여 테이블에서 여러 행의 데이터를 가져와 다른 테이블에 삽입

분류에서Dev

다른 테이블의 SQL Server 트리거 IF 조건

분류에서Dev

SQL Server에 대한 다른 쿼리에서 사용하기 위해 한 테이블에서 데이터를 가져 오나요?

분류에서Dev

다른 조회 테이블 SQL을 사용하여 쿼리 테이블

분류에서Dev

한 테이블의 데이터를 사용하여 다른 테이블 쿼리

분류에서Dev

한 테이블 열 값을 다른 테이블 값으로 업데이트하는 SQL Server 쿼리

Related 관련 기사

  1. 1

    다른 테이블 데이터를 추가하는 SQL 쿼리

  2. 2

    다른 테이블에서 관련 데이터를 가져 오는 SQL 쿼리

  3. 3

    SQL 쿼리 2는 테이블의 조건에 따라 여러 테이블 데이터를 가져옵니다.

  4. 4

    다른 테이블의 테이블에 SQL 삽입 데이터

  5. 5

    SQL 단순 쿼리를 사용하여 다른 테이블의 데이터를 삽입하는 방법

  6. 6

    4 개의 다른 테이블에서 데이터를 가져 오는 SQL 쿼리

  7. 7

    SQL Server : 구조가 다른 4 ~ 5 개의 테이블 조인

  8. 8

    SQL Server의 다른 테이블에서 데이터를 삽입하는 동안 PARTITION BY 여러 열

  9. 9

    다른 테이블에 SQL Server 트리거 정보 삽입

  10. 10

    SQL Server 2008 쿼리는 테이블 데이터를 다른 데이터로 이동

  11. 11

    첫 번째 쿼리 ID가 다른 테이블에서 사용되는 한 번의 클릭으로 두 테이블에 데이터를 삽입하는 방법

  12. 12

    다른 테이블에 외래 키가없는 SQL 쿼리

  13. 13

    SQL-다른 테이블의 값 조회를 사용하여 선택 쿼리에 삽입

  14. 14

    SQL Server 데이터베이스의 제약 조건을 위반하지 않고 한 테이블에서 다른 테이블로 레코드 삽입

  15. 15

    다른 테이블의 조건을 사용하여 테이블에서 SQL 쿼리

  16. 16

    다른 테이블에서 2 개의 SQL 쿼리 조인

  17. 17

    두 개의 다른 테이블에 데이터를 삽입하는 SQL

  18. 18

    두 개의 다른 테이블에 데이터를 삽입하는 SQL

  19. 19

    조건에 따라 한 테이블에서 다른 테이블로 레코드를 삽입하는 PSQL 쿼리

  20. 20

    SQL Server : 다른 테이블에서 선택하여 테이블에 삽입

  21. 21

    테이블에서 데이터를 복사하고 다른 SQL Server 데이터베이스에 삽입

  22. 22

    SQL Server 2008에서 CTE 쿼리를 다른 테이블과 조인하는 방법

  23. 23

    동일한 ID를 가진 다른 테이블에서 모든 데이터를 가져 오는 SQL 쿼리

  24. 24

    mysql 쿼리를 반복하여 테이블에서 여러 행의 데이터를 가져와 다른 테이블에 삽입

  25. 25

    다른 테이블의 SQL Server 트리거 IF 조건

  26. 26

    SQL Server에 대한 다른 쿼리에서 사용하기 위해 한 테이블에서 데이터를 가져 오나요?

  27. 27

    다른 조회 테이블 SQL을 사용하여 쿼리 테이블

  28. 28

    한 테이블의 데이터를 사용하여 다른 테이블 쿼리

  29. 29

    한 테이블 열 값을 다른 테이블 값으로 업데이트하는 SQL Server 쿼리

뜨겁다태그

보관