master를 사용하여 데이터베이스를 만드는 이유는 무엇입니까?


12

짧은 질문이 있는데 왜 use master;데이터베이스를 작성하는 데 사용해야 합니까? 다음은 Microsoft 설명서 의 입니다.

USE master ;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
    FILENAME = 'C:\Program Files\...\saledat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,  
    FILENAME = 'C:\Program Files\...\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;

답변:


22

이 매우 특정한 경우에는 반드시 요구되는 것은 아니지만 다른 많은 시나리오에서는 필요합니다. 이라는 데이터베이스를 작성 Sales중이고 라는 데이터베이스가있는 경우 다음을 수행 Sales하기 전에 데이터베이스 컨텍스트를 변경해야합니다.

  • 바꾸기로 복원하십시오. 또는,
  • 현재 데이터베이스를 삭제 한 후 다음을 수행하십시오.
    • 처음부터 작성하십시오. 또는,
    • 첨부하기 위해 작성하십시오.

데이터베이스 생성 외부에 (a) 현재 데이터베이스의 컨텍스트에 있지 않거나 (b) master구체적으로 (또는 적어도 특정 데이터베이스가 아닌 ) 컨텍스트를 필요로하는 다른 시나리오가 많이 있습니다. 데이터베이스 작성 중 또는 주변에서 수행 할 수있는 작업 :

  • 데이터베이스를 다른 상태로 설정 single_user
  • 스크립트에 USE명령이 있지만 해당 사용자 데이터베이스가 오프라인이거나 액세스 할 수없는 경우 오류 방지
  • 다음과 같은 서버 수준 권한 부여 CREATE DATABASE
  • 서버 수준 역할 멤버 자격 부여
  • 모듈을 시스템 객체 ( sp_MS_marksystemobject) 또는 시작 절차로 표시
  • 특정 유형의 인증서, 서버 감사 및 가용성 그룹 작업

아마도 다른 것들이 많이있을 것입니다. USE master;항상 필요한 것은 아니지만 때로는 필요하며 해당 데이터베이스에서 항상 서버 수준 명령을 실행하는 것이 아프지 않습니다 .


17

master데이터베이스를 작성 하기 위해 데이터베이스를 사용해야하는 것은 아닙니다 . 데이터베이스 작성 명령은 데이터베이스 컨텍스트에서 실행되어야하므로 문서는 항상 기본 데이터베이스 인 데이터베이스를 사용하며 master스크립트가 실패하지 않아도 항상 존재하는 시스템 데이터베이스입니다!


4

아주 오래 전에 우리 는 CREATE DATABASE 명령을 실행할 때 마스터 해야 한다고 생각합니다 . 20 년이 지난 버전을 확인하기에는 너무 게으르다. 아마 그것의 조합과 그것은 마스터에있는 것이 "자연 스럽다"고 생각합니다. 폴더를 만들려면 (한 수준의 폴더 만 있다고 상상해보십시오.) 먼저 루트를 마스터 데이터베이스와 비교하여 CD를 먼저 말하는 것이 더 낫습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.