SQL Server에서 INSERT INTO로 데이터 내보내기
SQL Server 2008 Management Studio를 사용하고 있으며 다른 DB 서버로 마이그레이션하려는 테이블이 있습니다.
SQL 스크립트에 삽입으로 데이터를 내보내는 옵션이 있습니까 ??
개체 탐색기의 SSMS에서 데이터베이스를 마우스 오른쪽 단추로 클릭하고 마우스 오른쪽 단추를 클릭하여 "작업"을 선택한 다음 "스크립트 생성"을 선택하십시오.
이를 통해 단일 또는 모든 테이블에 대한 스크립트를 생성 할 수 있으며 옵션 중 하나는 "스크립트 데이터"입니다. 이를 TRUE로 설정하면 마법사가 데이터에 대한 INSERT INTO () 문을 사용하여 스크립트를 생성합니다.
2008 R2 또는 2012를 사용하는 경우 다른 것을 호출합니다. 아래 스크린 샷을 참조하십시오.
2008 R2 이상 (예 : 2012)
"데이터 만", "스키마 및 데이터"또는 "스키마 만"(기본값) 인 "스크립트 할 데이터 유형"을 선택하십시오.
그런 다음 Codeplex (소스 포함)에 " SSMS Addin "패키지가있어 거의 동일한 기능과 몇 가지 (빠른 찾기 등)를 약속합니다.
지나치게 명백한 두뇌가 없기 위해, marc_s의 지시에 따라 여기에 ...
개체 탐색기의 SSMS에서 데이터베이스를 마우스 오른쪽 단추로 클릭하고 "작업"을 선택한 다음 "스크립트 생성"을 선택하십시오.
... 그러면 하단에 prev, next, finish, cancel 버튼이있는 " 소개, 객체 선택, 스크립팅 옵션 설정, 요약 및 스크립트 저장 또는 게시 "마법사 화면이 나타납니다 .
온 설정 스크립팅 옵션 단계 , 당신은해야 "고급"을 클릭 옵션으로 페이지를 얻을 수 있습니다. 그런 다음 Ghlouw 가 언급했듯이 이제 "스크립트 유형의 데이터"및 수익을 선택합니다.
SQLServer 2008R2를 사용하는 경우 데이터 유형을 스크립트 필드로 설정해야합니다.
SQL Server 2008 R2를 실행하는 경우 위에 설명 된 marc_s가 약간 변경되었으므로 SSMS에서이를 수행하기위한 기본 제공 옵션이 있습니다. Script data = true
다이어그램에 표시된대로 선택하는 대신 "Types of data to script"
"테이블 /보기 옵션"그룹 바로 위에 새 옵션이 있습니다. 여기서는 데이터 만, 스키마 및 데이터 또는 스키마 만 스크립팅하도록 선택할 수 있습니다. 매력처럼 작동합니다.
명령 행 버전을 찾는 사람들을 위해 Microsoft 는 다음과 같이 출시mssql-scripter
했습니다.
$ pip install mssql-scripter
# Generate DDL scripts for all database objects and DML scripts (INSERT statements)
# for all tables in the Adventureworks database and save the script files in
# the current directory
$ mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data \
-f './' --file-per-object
SQl 서버 Mng Studio 2016의 경우 :
다음에서 SQL Server Management Studio 2008의 "데이터 스크립터 추가 기능"을 확인할 수도 있습니다.
http://www.mssql-vehicle-data.com/SSMS
그들의 기능 목록 :
SSMS 2008에서 개발되었으며 현재 2005 버전에서는 지원되지 않습니다 (곧!).
MSSQL 및 MySQL 구문을 위해 데이터를 T-SQL로 빠르게 내보내기
CSV, TXT, XML도 지원됩니다! SQL이 제공하는 모든 잠재력, 성능 및 속도를 활용하십시오.
Access 또는 Excel에서 스크립팅 작업을 수행하는 데 몇 분 정도 걸릴 수 있습니다. SQL Server에서이를 수행하고 데이터를 내보내는 데 필요한 모든 추측 작업을 수행하십시오!
빠른 백업, DDL 조작 등을 위해 데이터 출력을 사용자 정의하십시오 ...
테이블 이름과 데이터베이스 스키마를 필요에 따라 빠르고 효율적으로 변경
열 이름을 내보내거나 단순히 이름없이 데이터를 생성하십시오.
You can chose individual columns to script.
You can chose sub-sets of data (WHERE clause).
You can chose ordering of data (ORDER BY clause).
Great backup utility for those grungy database debugging operations that require data manipulation. Don't lose data while experimenting. Manipulate data on the fly!
All the above is nice, but if you need to
- Export data from multiple views and tables with joins
- Create insert statements for different RDBMSs
- Migrate data from any RDBMS to any RDBMS
then the following trick is the one and only way.
First learn how to create spool files or export result sets from the source db command line client. Second learn how to execute sql statements on the destination db.
Finally, create the insert statements (and any other statements) for the destination database by running an sql script on the source database. e.g.
SELECT '-- SET the correct schema' FROM dual;
SELECT 'USE test;' FROM dual;
SELECT '-- DROP TABLE IF EXISTS' FROM dual;
SELECT 'IF OBJECT_ID(''table3'', ''U'') IS NOT NULL DROP TABLE dbo.table3;' FROM dual;
SELECT '-- create the table' FROM dual;
SELECT 'CREATE TABLE table3 (column1 VARCHAR(10), column2 VARCHAR(10));' FROM dual;
SELECT 'INSERT INTO table3 (column1, column2) VALUES (''', table1.column1, ''',''', table2.column2, ''');' FROM table1 JOIN table2 ON table2.COLUMN1 = table1.COLUMN1;
위의 예제는 테이블리스 선택에 이중 사용이 필요한 Oracle의 db를 위해 작성되었습니다.
결과 집합에는 대상 db에 대한 스크립트가 포함됩니다.
다음은 커서를 사용하여 소스 테이블을 반복하는 데이터 마이그레이션 스크립트를 작성하는 예입니다.
SET NOCOUNT ON;
DECLARE @out nvarchar(max) = ''
DECLARE @row nvarchar(1024)
DECLARE @first int = 1
DECLARE cur CURSOR FOR
SELECT '(' + CONVERT(CHAR(1),[Stage]) + ',''' + [Label] + ''')'
FROM CV_ORDER_STATUS
ORDER BY [Stage]
PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS ON'
PRINT 'GO'
PRINT 'INSERT INTO dbo.CV_ORDER_STATUS ([Stage],[Label]) VALUES';
OPEN cur
FETCH NEXT FROM cur
INTO @row
WHILE @@FETCH_STATUS = 0
BEGIN
IF @first = 1
SET @first = 0
ELSE
SET @out = @out + ',' + CHAR(13);
SET @out = @out + @row
FETCH NEXT FROM cur into @row
END
CLOSE cur
DEALLOCATE cur
PRINT @out
PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS OFF'
PRINT 'GO'
많은 검색 후, 그것은 최고의 기회였습니다.
데이터가 많고 간결하고 우아한 스크립트가 필요한 경우 SSMS 도구 팩을 사용해보십시오.
대상 테이블에 항목을 삽입하고 트랜잭션을 잘 처리하기 위해 모든 select 문을 통합합니다.
참고 URL : https://stackoverflow.com/questions/1515969/exporting-data-in-sql-server-as-insert-into
'Programming' 카테고리의 다른 글
Go에서 두 조각을 연결 (0) | 2020.02.22 |
---|---|
android : onClick XML 속성이 setOnClickListener와 정확히 어떻게 다릅니 까? (0) | 2020.02.22 |
계산량이 많은 경우 Fortran을 C보다 최적화하기가 더 쉽습니까? (0) | 2020.02.22 |
API 레벨 Android Studio 변경 (0) | 2020.02.22 |
현재 C 또는 C ++ 표준 문서는 어디에서 찾을 수 있습니까? (0) | 2020.02.22 |