none
Постоянная ошибка в EventLog Недопустимое имя столбца "tp_Level" на сервере SharePoint 2010 Ent RRS feed

  • Общие обсуждения

  • Имя журнала:   Application
    Источник:      Microsoft-SharePoint Products-SharePoint Foundation
    Дата:          18.06.2012 11:17:22
    Код события:   5586
    Категория задачи:База данных
    Уровень:       Ошибка
    Ключевые слова:
    Пользователь:  DOMEN\username
    Компьютер:     SPS.DOMEN.local
    Описание:
    Неизвестное исключение SQL 207. См. ниже дополнительные сведения об ошибке из SQL Server.
    
    Недопустимое имя столбца "tp_Level".
    Xml события:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="Microsoft-SharePoint Products-SharePoint Foundation" Guid="{6FB7E0CD-52E7-47DD-997A-241563931FC2}" />
        <EventID>5586</EventID>
        <Version>14</Version>
        <Level>2</Level>
        <Task>3</Task>
        <Opcode>0</Opcode>
        <Keywords>0x4000000000000000</Keywords>
        <TimeCreated SystemTime="2012-06-18T07:17:22.463724700Z" />
        <EventRecordID>376179</EventRecordID>
        <Correlation ActivityID="{8421E442-6F0A-474D-B6B8-5A2942910635}" />
        <Execution ProcessID="6676" ThreadID="8356" />
        <Channel>Application</Channel>
        <Computer>SPS.DOMEN.local</Computer>
        <Security UserID="S-1-5-21-2213225161-2730290538-1051029117-1335" />
      </System>
      <EventData>
        <Data Name="int0">207</Data>
        <Data Name="string1">Недопустимое имя столбца "tp_Level".</Data>
      </EventData>
    </Event>
    Ошибка на SharePoint Server 2010 Enterprise SP1 + April 2012 CU русская версия. БД SQL Server 2008 SP3 на том же сервере, если что. Ошибка о Недопустимое имя столбца "tp_Level" повторяется несколько раз для разный пользователей Domen\Username, при этом, не смотря на то, что стоит Server, источник ошибки "SharePoint Foundation".

    • Изменен тип Roman Zhukov 9 июля 2012 г. 8:56
    18 июня 2012 г. 7:25

Все ответы

  • Поищите в логах SharePoint (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS\) по имени столбца. Там должно быть больше информации об ошибке (сайт, список).

    My contributions: SharePoint 2010 Solution Installer

    18 июня 2012 г. 17:51
  • Логи смотрел, теперь еще раз более детально:

    Unknown SQL Exception 207 occurred. Additional error information from SQL Server is included below.  Недопустимое имя столбца "tp_Level".


    SqlError: 'Недопустимое имя столбца "tp_Level".'    Source: '.Net SqlClient Data Provider' Number: 207 State: 1 Class: 16 Procedure: '' LineNumber: 1 Server: 'SPS'


    System.Data.SqlClient.SqlException: Недопустимое имя столбца "tp_Level".     в System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)     в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)     в System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)     в System.Data.SqlClient.SqlDataReader.ConsumeMetaData()     в System.Data.SqlClient.SqlDataReader.get_MetaData()     в System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)     в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)     в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)     в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)     в System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)     в System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)     в Microsoft.SharePoint.Utilities.SqlSession.ExecuteReader(SqlCommand command, CommandBehavior behavior, SqlQueryData monitoringData, Boolean retryForDeadLock)


    SqlCommand: 'SET NOCOUNT ON;EXEC proc_StartUndirtyList 'C07B1347-D6D6-4CB1-A42E-B107C173C8A9','24C357B5-1D38-4902-887E-920C981D5102','84C869FB-31C6-4711-9434-22F11BF7E0C5';SELECT TOP 1000 D.MetaInfo,D.DirName,D.LeafName,D.tp_Level FROM dbo.TVF_Docs_DirNameEqLike_Value('236525D9-AF2C-4238-BF91-E4D71A037F2C',N'umu/DocLib7', N'umu/DocLib7/%') AS D CROSS APPLY dbo.TVF_UserData_PId_DId_Level(D.SiteId, D.ParentId, D.Id, D.Level) AS U WHERE D.ListDataDirty = 1 AND U.tp_RowOrdinal=-1 ORDER BY D.DirName Asc, D.LeafName Asc, D.Level OPTION (FORCE ORDER, MAXDOP 1)'     CommandType: Text CommandTimeout: 0

    Собественно говоря последний запрос и выдает ошибку на недопустимое имя столбца tp_Level - пробовал его выполнить в редакторе. А что это за столбец и почему его у меня нет?..


    19 июня 2012 г. 8:18
  • Столкнулась с такой же ошибкой. Ошибка таится как раз в этой части 

    SELECT TOP 1000 D.MetaInfo,D.DirName,D.LeafName,D.tp_Level

    Поля tp_Level просто напросто нет, зато есть поле Level. И если произвести замену в строке, то запрос возвратит значение tp_CacheParseId. Как устранить данную ошибку пока не разобралась.

    25 июня 2012 г. 4:55
  • Может быть это "приколы" русской версии шарика? Пока тоже решение не нашел, если кто знает - отзовитесь.

    27 июня 2012 г. 13:26
  • 1) С апрельским апдейтом возникают различные проблемы, лучше его не ставить пока.

    2) После установки апрельского апдейта вы запускали мастер настройки продуктов SharePoint? Операции обновления завершились успешно ?

    28 июня 2012 г. 6:54
  • Как обычно запускал psconfig, апрельское обновление установилось успешно, без ошибок с первого раза. Вроде как и до него эта ошибка была, но точно сказать не могу.
    28 июня 2012 г. 11:57
  • Решили проблему?

    Моя проблема решилась копированием библиотеки, вызывающей ошибку, вместе с контентом и восстановлением её в новую библиотеку. 

    Судя по логу у вас ошибка связана конкретно с библиотекой  DocLib7.


    • Изменено Necra 7 июля 2012 г. 9:05
  • Спасибо, я посмотрю если что получится - отпишусь.
    7 июля 2012 г. 12:31
  • Полностью переместить библиотеку пока не могу. Скажите, а вы делали через Export-SPWeb или ручками через проводник? Ошибка так и осталась, хотя уже июньский 2012 апдейт поставил...
    21 августа 2012 г. 10:49
  • Так и не удалось решить без удаления (переноса) библиотеки. Насколько я зная невозможно перенести файлы и структуру папок в новую библиотеку вместе с версиями, разрешениями и рабочими процессами? Пробовал импортировать и восстанавливать библиотеку - ошибка не исчезала. Ошибка только для одной библиотеки, с другими все нормально... Очень нужна помощь)

    Посмотрел процедуру и ее описание:

    ALTER PROC [dbo].[proc_StartUndirtyList](
        @WebId uniqueidentifier,
        @ListId uniqueidentifier,
        @CacheParseId uniqueidentifier,
        @RequestGuid uniqueidentifier = NULL OUTPUT)    
    AS
        SET NOCOUNT ON
        UPDATE
            L
        SET
            L.tp_CacheParseId = @CacheParseId
        FROM
            TVF_Lists_CI(@WebId, @ListId) AS L
        WHERE
            L.tp_CacheParseId IS NULL
        SELECT
            COALESCE(L.tp_CacheParseId, NEWID()) AS tp_CacheParseId
        FROM
            TVF_Lists_CI(@WebId, @ListId) AS L

    3.2.4.97 proc_StartUndirtyList
    The proc_StartUndirtyList stored procedure is called to start a new link fixup operation. The T-SQL syntax for the stored procedure is as follows:
    PROCEDURE proc_StartUndirtyList(
    @SiteId uniqueidentifier,
    @WebId uniqueidentifier,
    @ListId uniqueidentifier,
    @CacheParseId uniqueidentifier,
    @RequestGuid uniqueidentifier = NULL OUTPUT
    );
    @SiteId: The site collection identifier of the site collection.
    @WebId: The site identifier of the site (2).
    @ListId: The list identifier of the list (1).
    @CacheParseId: cache parse identifier representing new link fixup operation. This is used to assure that no one else has updated or started to update the document during the link fixup operation. MUST NOT be NULL.
    @RequestGuid: The optional request identifier for the current request.
    Return values: An integer that MUST be zero.
    Result sets: MUST return the result set described in the following section.

    В ней ссылки на столбец tp_Level нет, значит он попадает как параметр...

    1 ноября 2012 г. 12:48
  • Столкнулся с этой ошибкой. Проблема, скорее всего, не связана с процедурой proc_StartUndirtyList. Ошибку в моем случае вызывал следующий за ней стэйтмент:

    SELECT TOP 1000 D.MetaInfo,D.DirName,D.LeafName,D.tp_Level FROM 
    dbo.TVF_Docs_DirNameEqLike_Value('GUID_HERE',N'ListName', N'ListName/%') AS D CROSS APPLY dbo.TVF_UserData_PId_DId_Level(D.SiteId, D.ParentId, D.Id, D.Level) AS U WHERE D.ListDataDirty = 1 AND U.tp_RowOrdinal=-1 ORDER BY D.DirName Asc, D.LeafName Asc, D.Level OPTION (FORCE ORDER, MAXDOP 1)

    Проблема поражает некоторые библиотеки документов, обычно большого размера. При открытии формы библиотеки в моем случае возникала одна ошибка, ловил профайлером. Проблему удалось решить временной модификацией табличной функции. Механизм такой: модифицируем функцию, ОДИН раз открываем проблемную библиотеку, возвращаем функцию в исходное состояние. Следует иметь в виду, что любые модификации схемы базы аннулируют гарантию SharePoint 2010. Используйте на свой страх и риск:

    Туда:

    ALTER FUNCTION [dbo].[TVF_Docs_DirNameEqLike_Value]
                (
                    @SiteId uniqueidentifier,
                    @DirName nvarchar(256),
                    @DirNameLike nvarchar(1024)
                )
                RETURNS TABLE AS RETURN
                    SELECT
                        *
    					,[Level] tp_Level
                    FROM
                        AllDocs WITH (INDEX=AllDocs_Url)
                    WHERE
                        SiteId = @SiteId AND
                        DeleteTransactionId = 0x AND
                        DirName = @DirName
                    UNION ALL
                    SELECT
                        *
    					,[Level] tp_Level
                    FROM
                        AllDocs WITH (INDEX=AllDocs_Url)
                    WHERE
                        SiteId = @SiteId AND
                        DeleteTransactionId = 0x AND
                        DirName LIKE @DirNameLike


    Обратно:

    ALTER FUNCTION [dbo].[TVF_Docs_DirNameEqLike_Value]
                (
                    @SiteId uniqueidentifier,
                    @DirName nvarchar(256),
                    @DirNameLike nvarchar(1024)
                )
                RETURNS TABLE AS RETURN
                    SELECT
                        *
                    FROM
                        AllDocs WITH (INDEX=AllDocs_Url)
                    WHERE
                        SiteId = @SiteId AND
                        DeleteTransactionId = 0x AND
                        DirName = @DirName
                    UNION ALL
                    SELECT
                        *
                    FROM
                        AllDocs WITH (INDEX=AllDocs_Url)
                    WHERE
                        SiteId = @SiteId AND
                        DeleteTransactionId = 0x AND
                        DirName LIKE @DirNameLike


    9 апреля 2013 г. 16:48
  • В этой теме такая же ошибка, решение вроде как найдено - но это удаление "старой" или "криво импортированной" коллекции сайтов и контентной БД.

    Turns out that this was a one of my administrators causing me hell after all. The admin imported an old Site Collection that basically did not agree with SharePoint 2010. We removed the site collection and the DB associated with it (he create a separate Web App with it's own DB thank the stars ...) and this error ceased to exist!

    Можно ли как-то исправить ошибку, если в моем случае правда была миграция не удаляя БД и коллекцию сайтов? Или как-то перенести данные, но я пробовал через бекап - ошибка не исчезает.


    20 июля 2013 г. 7:02
  • Пробовал выполнить Upgrade-SPContentDatabase:

    PS C:\Users\Vinogradov> $contentdb = Get-SPContentDatabase | Where-Object {$_.
    Name -match "WSS_Content_0dd6b677-f163-4ef8-a2fb-8f2fd1895a93"}
    PS C:\Users\Vinogradov>
    PS C:\Users\Vinogradov> Upgrade-SPContentDatabase -Identity $contentdb
    
    Подтверждение
    Вы действительно хотите выполнить это действие?
    Выполнение операции "Upgrade-SPContentDatabase" над целевым объектом
    "WSS_Content_0dd6b677-f163-4ef8-a2fb-8f2fd1895a93".
    [Y] Да - Y  [A] Да для всех - A  [N] Нет - N  [L] Нет для всех - L
    [S] Приостановить - S[?] Справка (значением по умолчанию является "Y"): y
    ПРЕДУПРЕЖДЕНИЕ: Database [SPContentDatabase
    Name=WSS_Content_0dd6b677-f163-4ef8-a2fb-8f2fd1895a93] does not need to be
    upgraded.
    

    20 июля 2013 г. 7:13
  • Спасибо, попробовал все-таки Ваш способ:

    Сначала для одной библиотеки DocLib12 - ошибка перестала,

    но после уже писалась для другой DocLib10 - сделал то же самое.

    Сейчас ошибка пока пропала...


    23 июля 2013 г. 7:47