Что могло заставить столбец IDENTITY становиться поврежденным?

Вот решение VBA.

Sub PopulateListBox()
    Dim ListBox As MSForms.ListBox, columnHeaders As Range, header As Range

    Set ListBox = Worksheets("Sheet1").ListBox1
    Set columnHeaders = Worksheets("Sheet2").Range("A1:C1")

    ListBox.Clear

    For Each header In columnHeaders
        ListBox.AddItem (header)
    Next header
End Sub

Sub ListBox1_Click()
    Dim headerIndex As Integer, selectedHeader As Integer

    For headerIndex = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(headerIndex) = True Then
            DeleteColumn ListBox1.List(headerIndex)
        End If
    Next headerIndex

    PopulateListBox
End Sub

Sub DeleteColumn(headerId As String)
    Dim ListBox As MSForms.ListBox, columnHeaders As Range, header As Range

    Set columnHeaders = Worksheets("Sheet2").Range("A1:C1")

    For Each header In columnHeaders
        If header = headerId Then
            header.EntireColumn.Delete
        End If
    Next header
End Sub

Примечания:

  1. Добавьте Forms.ListBox на свой лист (sheet1 в моем примере) и заполните его заголовками столбцов (можно найти в sheet2 в A1:C1). в моем примере)
  2. Когда пользователь щелкает заголовок в ListBox, столбец удаляется, а ListBox обновляется, чтобы удалить этот столбец в качестве выбора
  3. . Вам нужно будет настроить диапазон ссылается соответственно.
6
задан 27 October 2008 в 23:28
поделиться

2 ответа

Если кто-то вставил в IDENTITY_INSERT НАБОРА использования таблицы НА, кто-то, возможно, абсолютно вошел в недопустимое значение для таблицы. Это было бы моим первым предположением. Вы могли использовать журнал анализатор как Спасение Журнала SQL, чтобы возвратиться вовремя через журналы транзакций и видеть, могли ли Вы найти, кем был плохой человек то, кто испортил Ваши данные...

1
ответ дан 17 December 2019 в 20:36
поделиться

Я думаю НАБОР, IDENTITY_INSERT НА пересевает Идентификационные данные.

От BOL

Если вставленное значение больше, чем текущее значение идентификационных данных для таблицы, SQL Server автоматически использует новое вставленное значение в качестве текущего значения идентификационных данных.

Единственным путем я мог воспроизвести эту проблему, должен был вручную установить семя слишком низко с DBCC CHECKIDENT.

1
ответ дан 17 December 2019 в 20:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: