TFS 2013 Update 4到TFS 2015 Update 3收集错误

时间:2016-11-17 18:49:55

标签: upgrade tfs2013 tfs2015

将我的TFS 2013 Update 4集合更新到TFS 2015更新3.使用DEV位置中的生产集合数据的备份。生产集合的备份是否已分离。没有任何错误。备份是254GB。

这是目前阻止我附加集合的错误:

Msg 3732,Level 16,State 1,Line 93 不能删除类型'typ_ItemSpec2',因为它被对象'prc_QueryPendingChanges_MS'引用。可能有其他对象引用此类型。

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

1 个答案:

答案 0 :(得分:0)

Microsoft的任何标准查询都没有_MS作为后缀。我怀疑有人手动调整了原始的prc_QueryPendingChanges并将其作为备份。在这种情况下,您应该可以删除此过程并重试升级。