2016-11-17 10 views
1

내 TFS 2013 업데이트 4 컬렉션을 TFS 2015 업데이트 3으로 업데이트합니다. DEV 위치에서 프로덕션 컬렉션 데이터의 백업 사용. 프로덕션 모음이있는 백업을 분리 했습니까? 어떤 오류도 없었습니다. 백업은 254GB입니다. TFS 2013 업데이트 4 - TFS 2015 업데이트 3 컬렉션 오류

는 오류가 현재 컬렉션을 부착에서 저를 정지입니다 :이 객체 prc_QueryPendingChanges_MS '에 의해 참조되고 있기 때문에

메시지 3732, 수준 16, 상태 1, 줄 93 유형'typ_ItemSpec2 '을 (를) 삭제할 수 없습니다. 이 유형을 참조하는 다른 객체가있을 수 있습니다.

SET XACT_ABORT ON 
SET NOCOUNT  ON 

DECLARE @status    INT 
DECLARE @procedureName  SYSNAME = N'upd_VersionControlToDev14M80_PostSchema' 
DECLARE @tfError   NVARCHAR(255) 

IF EXISTS (
    SELECT * 
    FROM sys.triggers 
    WHERE name = 'trg_tbl_VCFirstRunProject' 
) 
BEGIN 
    DROP TRIGGER trg_tbl_VCFirstRunProject 
END 

IF EXISTS (
    SELECT * 
    FROM sys.indexes 
    WHERE name = 'IX_tbl_VCFirstRunProject_OldServerItemPrefix' 
      AND object_id = OBJECT_ID('dbo.tbl_VCFirstRunProject') 
) 
BEGIN 
    -- Delete upgrade-only rows for $\, a few partitions at a time 
    -- We need dynamic SQL for this to be rerunnable. 
    EXEC @status = sp_executesql N' 
     DECLARE @batchStart   INT = 1 
     DECLARE @batchEnd   INT 
     DECLARE @end    INT 
     DECLARE @batchSize   INT = 50 

     -- Get the partition range 
     SELECT TOP (1) 
       @end = PartitionId 
     FROM tbl_VCFirstRunProject 
     ORDER BY PartitionId DESC 

     WHILE (@batchStart <= @end) 
     BEGIN 
      SET @batchEnd = @batchStart + @batchSize 

      DELETE tbl_VCFirstRunProject 
      WHERE PartitionId BETWEEN @batchStart AND @batchEnd 
        AND OldServerItemPrefix = N'''' 
      OPTION (OPTIMIZE FOR (@batchStart=1, @batchEnd=50)) 

      SET @batchStart = @batchEnd + 1 
     END 
    ' 

    IF (@status <> 0) 
    BEGIN 
     SET @tfError = dbo.func_GetMessage(500004); RAISERROR(@tfError, 16, -1, @procedureName, @status, N'sp_executesql', N'DELETE tbl_VCFirstRunProject') 
     RETURN 
    END 

    DROP INDEX IX_tbl_VCFirstRunProject_OldServerItemPrefix ON tbl_VCFirstRunProject 
END 

IF EXISTS (
    SELECT * 
    FROM sys.columns 
    WHERE object_id = Object_ID(N'dbo.tbl_VCFirstRunProject', N'U') 
      AND name = N'OldServerItemPrefix' 
) 
BEGIN 
    ALTER TABLE tbl_VCFirstRunProject 
    DROP COLUMN OldServerItemPrefix, NewServerItemPrefix 
END 

IF TYPE_ID('dbo.typ_BranchObject2') IS NOT NULL 
BEGIN 
    DROP TYPE typ_BranchObject2 
END 

IF TYPE_ID('dbo.typ_BuildMappingInput2') IS NOT NULL 
BEGIN 
    DROP TYPE typ_BuildMappingInput2 
END 

IF TYPE_ID('dbo.typ_CreateLabelInput') IS NOT NULL 
BEGIN 
    DROP TYPE typ_CreateLabelInput 
END 

IF TYPE_ID('dbo.typ_ExpandedChange2') IS NOT NULL 
BEGIN 
    DROP TYPE typ_ExpandedChange2 
END 

IF TYPE_ID('dbo.typ_ItemSpec2') IS NOT NULL 
BEGIN 
    DROP TYPE typ_ItemSpec2 
END 

IF TYPE_ID('dbo.typ_LocalPendingChange3') IS NOT NULL 
BEGIN 
    DROP TYPE typ_LocalPendingChange3 
END 

IF TYPE_ID('dbo.typ_LocalVersion3') IS NOT NULL 
BEGIN 
    DROP TYPE typ_LocalVersion3 
END 

IF TYPE_ID('dbo.typ_LockConflictCandidate2') IS NOT NULL 
BEGIN 
    DROP TYPE typ_LockConflictCandidate2 
END 

IF TYPE_ID('dbo.typ_LockObject') IS NOT NULL 
BEGIN 
    DROP TYPE typ_LockObject 
END 

IF TYPE_ID('dbo.typ_Mapping2') IS NOT NULL 
BEGIN 
    DROP TYPE typ_Mapping2 
END 

IF TYPE_ID('dbo.typ_PendingAdd2') IS NOT NULL 
BEGIN 
    DROP TYPE typ_PendingAdd2 
END 

IF TYPE_ID('dbo.typ_PendingChangeObject') IS NOT NULL 
BEGIN 
    DROP TYPE typ_PendingChangeObject 
END 

IF TYPE_ID('dbo.typ_PendingChangeSecurity') IS NOT NULL 
BEGIN 
    DROP TYPE typ_PendingChangeSecurity 
END 

IF TYPE_ID('dbo.typ_PendingMerge2') IS NOT NULL 
BEGIN 
    DROP TYPE typ_PendingMerge2 
END 

IF TYPE_ID('dbo.typ_PendingPropertyChange2') IS NOT NULL 
BEGIN 
    DROP TYPE typ_PendingPropertyChange2 
END 

IF TYPE_ID('dbo.typ_VersionedItemId') IS NOT NULL 
BEGIN 
    DROP TYPE typ_VersionedItemId 
END 
+0

@jessehouwing 감사합니다. 귀하의 의견을 답으로 표시하고 싶습니다. – LordRazon

답변

0

Microsoft의 표준 쿼리에는 모두 접미사로 _MS이 없습니다. 나는 누군가가 손으로 원래의 prc_QueryPendingChanges을 비틀어서 백업으로 남겨 두었다고 생각합니다. 이 경우이 절차를 중단하고 업그레이드를 다시 시도 할 수 있어야합니다.

관련 문제