2016-10-26 3 views
-1

비주얼 스튜디오 2013데이터베이스 프로젝트 복사 테이블

SQL 서버 2008

대상 프레임 워크를 배포하는 동안 : 닷넷 3.5

나는 SQL Server 데이터베이스 프로젝트를 생성하고 괜찮 았는데. 하지만 파티션 기능 및 파티션 스키마 [PS]를 추가하고, 내 테이블 중 하나를 변경 : 클러스터 된 기본 키를 삭제하고 새로운 PS에 클러스터 된 인덱스를 추가합니다. 그 후

CREATE CLUSTERED INDEX [Ind_Archive_Data] 
ON [Archive].[Data]([Id] ASC, [CreatedOn] ASC) 
ON [RangePS] ([CreatedOn]) 

, 테이블 [아카이브]의 사본 [ 데이터] 내가 프로젝트를 재배치 할 때마다 작성

CREATE TABLE [Archive].[tmp_ms_xx_Data].... 
INSERT INTO [Archive].[tmp_ms_xx_Data]...copy data... 
DROP TABLE [Archive].[Data]; 
EXECUTE sp_rename N'[Archive].[tmp_ms_xx_Data]', N'Data'; 

나는이 테이블을 변경하지 않는 경우에도 마찬가지입니다. 더 나쁜 것은 - 한 번 배포하는 동안 두 번 복사하는 것입니다. 위와 같은 방법으로 테이블을 다시 만들고 인덱스 [Ind_Archive_Data] 사본을 만듭니다.

내 데이터 테이블이 상당히 클 수 있기 때문에 나쁘다. 나는 Shema를 실행한다. Compare : 데이터베이스는 훨씬 더 많은 객체를 가지고 있지만 배치하려고하는 테이블은 절대적으로 동일하다.

누군가가 제발,이 행동을 설명하고 어떻게 고칠 수 있습니다.

+0

확실하지, 그것은 누군가에 유용 할 것입니다 경우. 그러나 경우에 따라. – Niobis27

답변

0

내 dacpac 파일에서 배포 스크립트를 생성하고 있습니다 방법은 다음과 같습니다

sqlpackage.exe /Action:script /sourcefile:J:\path\to\My.dacpac /targetservername:localhost /targetdatabasename:ArchiveDB /v:Environment=DEV /v:Revision=1.1.0.0 /OutputPath:J:\test\ResultingScript.sql /v:ServiceUser=domain\user /v:ApiUser=domain\user /v:CsapiUser=domain\user /p:BlockOnPossibleDataLoss=True /p:IgnorePartitionSchemes=false 

문제는 마지막 매개 변수에 있었다. 기본적으로, 웬일인지, 그것은 사실 일뿐만 아니라 항상 내 스키마의 차이점을 감지합니다. 이에 대한 자세한 정보를 들어

는 확인할 수 parameners :

  1. https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx

  2. https://social.msdn.microsoft.com/Forums/sqlserver/en-US/01a9fbae-c143-45b1-bbdd-e1a1cddba042/sqlpackage-rebuild-the-table?forum=ssdt

관련 문제