IT

전체 데이터베이스 SQL-Server 스크립팅

lottoking 2020. 9. 7. 08:27
반응형

전체 데이터베이스 SQL-Server 스크립팅


데이터베이스에서 모든 테이블, 프로세스 및 기타 개체의 스크립팅을 얻을 수있는 방법이 있습니까? 모든 테이블, procs, udfs, .etc를 스크립팅하는 옵션이 데이터베이스 생성하는 것이 좋습니다.


Management Studio에서 데이터베이스를 마우스 오른쪽 단추로 클릭하십시오. 작업-> 펼쳐 생성.

그렇게해야합니다.


작업 을 수행하는 SchemaZen 이라는 오픈 소스 명령 줄 유틸리티를 작성했습니다 . Management Studio의 스크립팅보다 훨씬 빠르며 출력은 버전 관리에 더 많이 있습니다. 스키마와 데이터 모두 스크립팅을 지원합니다.

펼쳐 놓고 다음을 실행하십시오.

schemazen.exe 펼쳐보기 --server localhost --database db --scriptDir c : \ somedir

그런 다음 펼쳐지는 데이터베이스를 다시 작성하려는 다음을 실행하십시오.

schemazen.exe create --server localhost --database db --scriptDir c : \ somedir

이 작업을위한 유틸리티 인 SMOscript를 작성했습니다 .

펼쳐지는 생성은 SMO 라이브러리에서 수행 할 SQL 2005 및 2008의 새로운 개체 유형을 지원합니다.


결국 SSMS 조합 생성 조합을 사용하여 스키마와 데이터를 추출한 다음 펼쳐진 키워드 구문 분석 및 토큰 기반 교체를 허용하는 자체 데이터베이스 도구를 사용했습니다. 또한 펼쳐지는 번만 적용합니다.

왜?

  • SQL Server 2000, 2005 및 2008에 대한 설치를 지원하며 버전간에 데이터 유형이 변경되었습니다. 예를 들어 2005+에는 nvarchar (max)가있는 반면 2000은 ntext 만 지원합니다. 따라서 펼쳐지는 토큰을 사용하고 db 선택에 따라 올바른 유형으로 바꿉니다.
  • 일부 펼쳐서 실행 후 대기 시간이 필요합니다. 예를 들어 펼쳐서 통해 새 데이터베이스를 생성 한 후 몇 초를 기다리지 SQL Server가 생성 할 시간이 없습니다. 파일) 테이블 등을 만들 때
  • 어떤 펼쳐가 언제 실행 결과 기록을 유지하고 싶었습니다.
  • Wix MSI 설치 프로그램이 연결되어 있고 자격 증명을 증명할 수 있습니다.

예제 펼쳐 (간결성을 위해 편집 됨)

-- Sleep: 5 
-- Sleep after creating database to allow file system to create db files
CREATE DATABASE [$Database$]
GO

EXEC sp_dbcmptlevel [$Database$], $CompatabilityLevel$
GO

USE [$Database$]
GO

IF '1'!='$IntegratedSecurity$'
BEGIN
    CREATE LOGIN [$Login$] WITH PASSWORD=N'$Password$', DEFAULT_DATABASE=[$Database$]
    CREATE USER [$User$] FOR LOGIN [$Login$]
    EXEC sp_addrolemember N'db_owner', N'$User$'
END
GO

RedGate SQL packager를 보는 것이 좋습니다. 무료는 가격 대비 가치가있을 수 있습니다.


테이블 데이터를보고 Management Studio 2012 및 2014의 모든 테이블 데이터 콘텐츠를 출력하기 위해 약간 숨겨져 있지만 몇 가지 살펴본 후 옵션을 찾았습니다.

  1. db를 마우스 오른쪽 버튼으로 클릭하십시오.
  2. '작업'> '스크립트 생성 ...'을 선택하십시오.
  3. '스크립팅 옵션 설정'에서 '고급'을 클릭합니다.
  4. '일반'에서 '스크립트에 사용할 데이터 유형'을 true로 설정합니다 ( '일반'그룹의 맨 아래에 있음).

프로그래밍 방식으로 수행해야하는 경우 SQL Server 2000에 대해 SQL DMO 라이브러리 (OLE)를 사용할 수 있지만 SQL Server 2005 이상에 대해서는 SQL SMO 라이브러리 (네이티브 .NET 라이브러리)를 사용할 수 있습니다.

이 두 라이브러리는 SQL Server 관리 도구 설치에 필수적입니다.

SQL Server Management Studio에서 전체 데이터베이스 스크립트를 생성하는 것만으로는 충분하지 않은 경우입니다.

참고URL : https://stackoverflow.com/questions/1162339/script-entire-database-sql-server

반응형