답변:
개체 탐색기의 SSMS에서 데이터베이스를 마우스 오른쪽 단추로 클릭하고 마우스 오른쪽 단추를 클릭하여 "작업"을 선택한 다음 "스크립트 생성"을 선택하십시오.
이를 통해 단일 또는 모든 테이블에 대한 스크립트를 생성 할 수 있으며 옵션 중 하나는 "스크립트 데이터"입니다. 이를 TRUE로 설정하면 마법사가 데이터에 대한 INSERT INTO () 문을 사용하여 스크립트를 생성합니다.
2008 R2 또는 2012를 사용하는 경우 다른 것을 호출합니다. 아래 스크린 샷을 참조하십시오.
"데이터 만", "스키마 및 데이터"또는 "스키마 만"(기본값) 인 "스크립트 할 데이터 유형"을 선택하십시오.
그런 다음 Codeplex (소스 포함)에 " SSMS Addin "패키지가있어 거의 동일한 기능과 몇 가지 (빠른 찾기 등)를 약속합니다.
지나치게 명백한 두뇌가 없기 위해, marc_s의 지시에 따라 여기에 ...
개체 탐색기의 SSMS에서 데이터베이스를 마우스 오른쪽 단추로 클릭하고 "작업"을 선택한 다음 "스크립트 생성"을 선택하십시오.
... 그러면 하단에 prev, next, finish, cancel 버튼이있는 " 소개, 개체 선택, 스크립팅 옵션 설정, 요약 및 스크립트 저장 또는 게시 "마법사 화면이 나타납니다 .
온 설정 스크립팅 옵션 단계 , 당신은해야 "고급"을 클릭 옵션으로 페이지를 얻을 수 있습니다. 그런 다음 Ghlouw 가 언급했듯이 이제 "스크립트 유형의 데이터"와 수익을 선택합니다.
SQLServer 2008R2를 사용하는 경우 데이터 유형을 스크립트 필드로 설정해야합니다.
커맨드 라인 버전을 찾는 사람들을 위해 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
2019 년경 최신 v18을 사용하면서 다른 사람들을 돕기 위해 스크린 샷을 업데이트하기 만하면됩니다.
여기서 특정 테이블을 선택하거나 기본값을 모두 사용할 수 있습니다. 내 필요에 따라 하나의 테이블 만 나타냅니다.
다음으로, 출력 파일 등을 선택할 수있는 "스크립팅 옵션"이 있습니다. 위의 여러 답변에서와 마찬가지로 (더욱 최신 v18.4 SQL Server Management Studio에 대한 이전 답변을 정리하고 있습니다.) "고급"버튼 아래에 있습니다. 내 목적으로는 데이터 만 있으면됩니다.
다음에서 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 조작 등을 위해 데이터 출력을 사용자 정의하십시오 ...
테이블 이름과 데이터베이스 스키마를 필요에 따라 빠르고 효율적으로 변경
열 이름을 내보내거나 단순히 이름없이 데이터를 생성하십시오.
스크립트 할 개별 열을 선택할 수 있습니다.
하위 데이터 집합 (WHERE 절)을 선택할 수 있습니다.
데이터 순서를 선택할 수 있습니다 (ORDER BY 절).
데이터 조작이 필요한 지저분한 데이터베이스 디버깅 작업을위한 훌륭한 백업 유틸리티. 실험하는 동안 데이터를 잃지 마십시오. 즉석에서 데이터를 조작하십시오!
위의 모든 것이 좋지만 필요한 경우
다음 트릭은 유일한 방법입니다.
먼저 스풀 파일을 작성하거나 소스 db 명령 행 클라이언트에서 결과 세트를 내보내는 방법을 학습하십시오. 두 번째는 대상 DB에서 sql 문을 실행하는 방법을 배웁니다.
마지막으로 소스 데이터베이스에서 sql 스크립트를 실행하여 대상 데이터베이스에 대한 삽입 명령문 (및 기타 명령문)을 작성하십시오. 예 :
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 문을 통합합니다.