저는 sqlserver에서 데이터베이스를 복사하는 여러 가지 방법을 살펴 보는 데 바쁜 시간을 보냈습니다. 주제에 대한 다양한 질문과 답변이 있지만 그 중 어느 것도 내 시나리오에 맞지 않는 것 같습니다.SQL 서버에서 데이터베이스 복사
기본적으로 내가하려는 것은 특정 상태 (스키마 + 데이터 데이터)로 데이터베이스를 설정하는 것입니다. 내가 선택한 모든 방법으로 - 응용 프로그램에서 쓰레기를 치고 삽입물 등을 작성하는 것이 좋습니다. 상태로 사용할 수있는 해당 데이터베이스 복사본을 보존하려면 특정 테스트 집합이/require와 관련하여 실행된다는 것을 의미합니다. 나는 이것을 추출 할 때 일어났던 것뿐만 아니라 어떤 데이터베이스 이름에도 이것을 놓을 수 있어야한다. 빌드 서버의 명령 줄에서이 작업이 필요합니다. 다른 곳
outputFile = "something.IDontCareWhatExtension"
databaseName = "aDatabase"
SaveDatabase(databaseName, outputFile)
과 :
이상적으로 나는 같은 것을 할 수 있도록하고 싶습니다
inputFile = "theFilename"
databaseName = "somethingOtherDatabase"
Load(databaseName, inputFile);
그것은 큰 질문처럼 보일 나던! 나는 imp + exp로 oracle에서 비슷한 것을 해왔고 기본적으로 내가 원하는 것을 수행한다.
지금까지 SMO.net 라이브러리를 사용해 보았습니다. 이것은 데이터베이스를 오른쪽 클릭 => 작업 => 스크립트를 생성 할 때 SSMS의 내부에서 사용되는 것입니다. 이것들은 근본적으로 당신이 예상했던 것처럼 작동하지 않으며 제약 같은 것들을 얻으려면 놀랄만한 양의 프로그래밍 노력을 필요로합니다. 이 접근법에 더 많은 시간을 들여 놓기 전에 나는 백업과 복구에 대해 좀 더 자세하게 살펴볼 것이라고 생각했지만 백업과 복원을 위해 준비된 것으로 보인다. 예를 들면, 그들은 당신이 백업을 설치할 데이터베이스를 알려주지 않는 것 같습니다.
도와주세요. 분명히 그렇게하기가 어렵지 않을 것입니다!
내가 생각할 수있는 유일한 다른 점은 다른 접근 방식을 사용하고 대신 데이터베이스 설치 스크립트를 작성해야한다는 것입니다. 여기서 특정 버전의 스키마를 생성 한 다음 공예품에 삽입 문을로드해야합니다. 그렇게하면 버그를 재현하기 위해 서버에서 클라이언트 데이터를 가져 오는 것을 막을 수 있습니다.
HM 때문에 문제가 복원 된 데이터베이스가 항상 백업 한 하나의 동일한 이름을 가지고 있다는 것입니다 쪽으로? 복원 후 간단하게 이름을 바꾸지 않습니까? – DrCopyPaste
db를 백업하고 복원하는 저장 프로 시저를 작성할 수 있습니다. 그런 다음 콘솔 앱에서 호출합니다. 그걸 들여다 봤니? –
@DrCopyPaste 당신이 자세히 설명해 주시겠습니까? –