데이터베이스 프로젝트로 가져오기
가져오기를 사용하여 프로젝트를 라이브 데이터베이스 또는 .dacpac의 새 개체로 채우거나 프로젝트의 기존 개체를 스크립트의 새 정의로 업데이트할 수 있습니다. 아래에 설명된 이러한 세 경로 간에는 몇 가지 주의할 동작 차이점이 있습니다.
가져오기 메뉴
이 주제의 구역
가져오기 소스: 데이터베이스 또는 데이터 계층 애플리케이션(*.dacpac)
가져오기 소스: 데이터베이스 또는 데이터 계층 애플리케이션(*.dacpac)
데이터베이스 또는 .dacpac 파일에서 스키마를 가져오는 기능은 프로젝트에 이미 정의된 스키마 개체가 없는 경우에만 사용할 수 있습니다. 여기에는 RefactorLog 또는 배포 전/배포 후 스크립트가 포함되지 않습니다.
가져올 때 개체 정의는 새 개체에 대한 SSDT의 조직 기본값을 사용하여 프로젝트 파일로 스크립트되며, 새 개체는 최상위 개체에 대한 새 파일, 부모 파일과 동일한 파일에 정의된 계층적 자식, 가능한 경우 인라인으로 정의된 테이블/열 제약 조건을 말합니다. 각 개체에 대한 더 많은 대상 표시 여부 및 제어를 위해 가져오기 대신 스키마 비교를 사용합니다.
가져오기 원본에 배포 전 및 배포 후 스크립트, RefactorLog 또는 SQLCMD 변수 정의가 포함되어 있는 경우 프로젝트로 가져올 수 있습니다. 프로젝트에 이러한 아티팩트 중 하나라도 이미 포함되어 있을 경우 가져온 파일은 프로젝트의 가져오기 시 무시됨 폴더에 추가됩니다.
가져오기 폴더에서 무시됨
가져오기 원본: 스크립트(*.sql)
프로젝트에 아직 없는 가져오기 원본의 모든 개체가 추가되고, 프로젝트에 이미 있는 가져오기 원본의 모든 개체가 프로젝트의 개체 정의를 덮어쓰게 됩니다.
참고 항목
이 경로에는 향후 릴리스에서 수정될 두 가지 알려진 버그가 있습니다.
- 테이블/열 제약 조건이 프로젝트의 테이블 정의에 있는 CREATE TABLE 문 외부에서 정의되는 경우, 가져오기는 제약 조건이 인라인이 되도록 테이블 정의를 덮어씁니다. 하지만 인라인이 아닌 제약 조건은 그대로 두기 때문에 프로젝트에 중복되는 제약 조건이 생깁니다.
- 프로젝트에 이미 있는 원본 스크립트의 마스터 키 또는 데이터베이스 암호화 키는 가져올 때 중복됩니다. 프로젝트를 빌드하기 위해 중복 항목을 제거합니다.
스크립트에서 가져오기 프로세스는 배포 전/후 스크립트, SQLCMD 변수 또는 RefactorLog 파일을 이해하지 않습니다. 가져오기 시 검색된 이러한 구문과 지원되지 않는 다른 구문은 프로젝트의 Scripts 폴더에 있는 ScriptsIgnoredOnImport.sql 파일에 배치됩니다.
암호화된 개체 가져오기
암호화된 개체를 데이터베이스 프로젝트로 가져올 때 서버에서 개체 정의의 전체 본문을 항상 검색할 수는 없습니다. 그렇기 때문에 이러한 클래스의 개체를 처리할 때는 가져오기 동작이 다를 수 있습니다.
전체 본문 정의를 검색할 수 없는 경우 더미 본문과 함께 개체 머리글/바닥글이 스크립트됩니다. 원본이 라이브 데이터베이스이거나 데이터베이스에서 추출한 .dacpac일 때 가져오기를 실행하거나 스키마 비교를 사용하면 이러한 동작이 나타날 수 있습니다.
더미 본문이 포함된 스크립트
전체 개체 정의를 사용할 수 있고 검색할 수 있는 경우 가져오기 및 스키마 비교는 그것을 전체적으로 프로젝트에 가져옵니다. 이 문제는 스크립트, 데이터베이스 프로젝트에서 빌드된 .dacpac 또는 다른 데이터베이스 프로젝트에서 프로젝트를 업데이트할 때 발생합니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기