1

시나리오 : 나는 Dev, UAT 및 Live를 사용하고있는 3 가지 환경이 있습니다. 각각의 데이터베이스는 자체 데이터베이스 인 MyDb_Dev, MyDb_UAT, MyDb_Live를가집니다. 그런 다음 모든 스크립트가 포함 된 솔루션에 VS2012 데이터베이스 프로젝트가 있습니다. 이것은 로컬에있는 모델 데이터베이스 (MyDb_Model)를 변경할 때 잘 작동합니다. 내가 원하는 무엇스크립팅 파일 테이블

: 을 나는 (내가 설정하는 방법을 이해) SQL 2012 년 FileTables를 사용하려면, 그러나 나는 그들이 할 수있는 옵션을 구성 할 수있는 방법을 스크립트 모른다 내 환경을 처리하라. 스크립트를 생성 할 때 MyDb_Model이라는 이름을 FileGroup으로 하드 코딩합니다. 또한 데브 데이터베이스에 게시하려고 할 때 새로운 스크립트를 사용할 수없는 데이터베이스 옵션에 대해 불평하고 있습니다. 스크립트에 Model 데이터베이스의 옵션이 포함되어 있으면 이름이 중복되어 Dev 데이터베이스에 게시하려고 할 때 불평 할 것입니다.

질문 : 할 수 있습니다 구성 할 수 또는 내가 수동으로 내 자신의 스크립트를해야 ​​할 V2012의 데이터베이스 프로젝트를 사용 (데이터베이스 옵션) 스크립트 FileTables?

선호 : MyDb_Model과 데이터베이스 프로젝트를 비교하십시오. MyDb_Dev에 새로 생성 된 데이터베이스로 게시합니다.

답변

1

프로젝트 변수가이를 처리하기를 원하는 것처럼 들리 겠지만, 변수에 환경 별 텍스트가 들어있는 경우에는이 변수를 처리해야합니다. 그런 다음 하드 코딩 된 경로 대신 해당 변수를 개체에 사용합니다. 다음은 "DocumentStore"라는 FileTable을 만들고 Project Properties - SQLCMD Variables에 설정 한 "FileTableDirectoryVariable"이라는 변수의 값을 사용합니다. 게시 프로필에있는 각자가 올바른 디렉토리를 사용하도록 설정하면 좋을 것입니다. 이 테이블에 대해 서로 다른 파일 그룹을 사용하는 경우 SQLCMD 변수를 사용하여 유사한 방식으로 파일 그룹 설정을 조정할 수 있어야합니다.

CREATE TABLE DocumentStore AS FileTable 
    WITH ( 
      FileTable_Directory = '$(FileTableDirectoryVariable)', 
      FileTable_Collate_Filename = database_default 
     ); 
GO 
+0

그 트릭을했습니다, 감사합니다 !! –