ИСПРАВЛЕНИЕ: Сообщение: «сведения о ключевом столбце недостаточно для обновления» происходит в SQL Server 2000 SP3

Переводы статьи Переводы статьи
Код статьи: 814893 - Vizualiza?i produsele pentru care se aplic? acest articol.
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
CPR - SQL Server 2000 — исправление в SP4
НОМЕР ОШИБКИ: 364087 (SHILOH_BUGS)
Развернуть все | Свернуть все

В этой статье

Проблема

После применения одного из следующих действий
  • Исправления, описанного в
    321541 ИСПРАВЛЕНИЕ: SQL Server может вернуть Неверные результаты при использовании внешнего соединения и представления
    на компьютере, на котором выполняется Microsoft SQL Server Пакета обновления 2 (SP2).
  • Исправления безопасности, описанные вКорпорация Майкрософт Бюллетень по безопасности MS02-061 для Microsoft SQL Server 2000 2 (SP2).
  • Microsoft SQL Server 2000 пакетом обновления 3 (SP3).
может появиться следующее сообщение об ошибке:
Недостаточно сведения о ключевом столбце обновление или обновления.

Решение

Сведения о пакете обновления

Чтобы устранить эту проблему, получите последний пакет обновления для Microsoft SQL Server 2000. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
290211 Как получить последний пакет обновления для SQL Server 2000

Сведения об исправлении

Английская версия исправления содержит атрибуты файла (или более поздними), приведенные в следующей таблице. Дата и время для файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, следует использовать Часовой пояс вкладку Дата и время на панели управления.
   Date         Time   Version        Size              File name
   ------------------------------------------------------------------
   08-Feb-2003  05:43                    786,432 bytes  Distmdl.ldf
   08-Feb-2003  05:43                  2,359,296 bytes  Distmdl.mdf
   01-Feb-2003  00:32  2000.80.763.0   1,557,052 bytes  Dtsui.dll        
   30-Jan-2003  05:18                    746,470 bytes  Instdist.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692 bytes  Msgprox.dll      
   08-Feb-2003  03:53                  1,065,895 bytes  Replmerg.sql
   08-Feb-2003  06:40  2000.80.765.0     221,768 bytes  Replprov.dll     
   08-Feb-2003  06:40  2000.80.765.0     307,784 bytes  Replrec.dll      
   30-Jan-2003  05:18                  1,084,318 bytes  Replsys.sql
   08-Feb-2003  06:40  2000.80.765.0     176,696 bytes  Sqlmap70.dll     
   08-Feb-2003  06:40  2000.80.765.0      57,920 bytes  Sqlrepss.dll     
   15-Feb-2003  02:52  2000.80.769.0   7,512,145 bytes  Sqlservr.exe     
   15-Feb-2003  02:52                 12,715,008 bytes  Sqlservr.pdb
   08-Feb-2003  06:40  2000.80.765.0      45,644 bytes  Sqlvdi.dll       
   08-Feb-2003  06:40  2000.80.765.0      82,492 bytes  Ssnetlib.dll     
				
Примечание Из-за зависимостей между файлами, последнего исправления или функция содержащий файлы могут также содержать дополнительные файлы.

Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Microsoft, перечисленных в разделе «Относится к».Сначала исправление этой проблемы появилось в пакете обновления 4 (Sp4) для SQL Server 2000.

Дополнительная информация

Regresses исправление, описанное в данной статье исправление, Описанное в следующей статье базы знаний Майкрософт:
321541 ИСПРАВЛЕНИЕ: SQL Server может возвращать неверные результаты при использовании внешнего соединения и представления


Примечание Чтобы внести исправления, описанного в этой статье операций, которые необходимо включить трассировку флаг - T220 и перезапустите SQL Server.

Чтобы включить флаг трассировки, выполните следующие действия:
  1. Откройте на сервере SQL Enterprise Manager.
  2. Выберите сервер, на котором возникла проблема.
  3. Щелкните правой кнопкой мыши сервер и нажмите кнопкуСвойства.
  4. На Общие Щелкните Автозагрузка Параметры.
  5. В Параметры запуска диалоговое окно, тип-T220, а затем нажмите кнопку Добавить.
  6. Нажмите кнопку ОК.
  7. Остановите и перезапустите службу Mssqlserver для перезапуска SQL Server.

Примером данной проблемы и что трассировки флаг - T220 выполняется следующим образом.
В примере используется два образца таблицы с именем Test_Table1 и Test_Table2. Рассмотрим следующие таблицы и представления.
CREATE TABLE TEST_TABLE1 ( 
[CODE] [int] NOT NULL PRIMARY KEY, 
[DESCRIPTION] [varchar] (50)) 

CREATE TABLE TEST_TABLE2 ( 
[CODE] [int] NOT NULL PRIMARY KEY, 
[DESCRIPTION] [varchar] (50)) 
go
CREATE VIEW dbo.TEST_VIEW 
AS 
SELECT CODE, 
UPPER(DESCRIPTION) AS DESCRIPTION, 
ISNULL(UPPER(DESCRIPTION), 'DEFAULT') DESCRIPTION_DEF 
FROM dbo.TEST_TABLE2 
go
Запустите этот код:
DECLARE cc CURSOR FOR 
SELECT TEST_TABLE1.CODE, TEST_VIEW.DESCRIPTION, TEST_VIEW.DESCRIPTION_DEF 
FROM TEST_TABLE1 LEFT OUTER JOIN TEST_VIEW 
ON TEST_VIEW.CODE = TEST_TABLE1.CODE 
FOR UPDATE
  • Для версий SQL Server 2000 до SQL Server 2000 SP2 с помощью исправления безопасности, описанные вКорпорация Майкрософт Бюллетень по безопасности MS02-061 установлен, код выполняется успешно.
  • Для всех версий SQL Server 2000 после SQL Server 2000 SP2 с помощью исправления безопасности, описанные вКорпорация Майкрософт Бюллетень по безопасности MS02-061 установлен, код не выполняется успешно.
  • Для SQL Server 2000 версии 8.00.0769 и более поздних версий, когда вы Использование трассировки флаг - T220 или DBCC traceon (220), код выполняется успешно.
Также обратите внимание, что инструкция SELECT не означает, что же результат.
  • Для версий SQL Server 2000 до SQL Server 2000 SP2 с помощью исправления безопасности, описанные вКорпорация Майкрософт Бюллетень по безопасности MS02-061 установлено, либо учесть 8.00.0769 с трассировкой флаг 220, результат будет иметь вид:

    CODE        DESCRIPTION                                        DESCRIPTION_DEF                                    
    ----------- -------------------------------------------------- -------------------------------------------------- 
    1           NULL                                               DEFAULT
    
    
  • Для версий SQL Server 2000 после SQL Server 2000 SP2 с помощью исправления безопасности, описанные вКорпорация Майкрософт Бюллетень по безопасности MS02-061установлен, результат аналогичен Чтобы:

    CODE        DESCRIPTION                                        DESCRIPTION_DEF                                    
    ----------- -------------------------------------------------- -------------------------------------------------- 
    1           NULL                                               NULL
    

Свойства

Код статьи: 814893 - Последний отзыв: 21 февраля 2014 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2000 Service Pack 3
Ключевые слова: 
kbnosurvey kbarchive kbhotfixserver kbqfe kbsqlserv2000presp4fix kbfix kbbug kbmt KB814893 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:814893

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com