BUG: Ricrea un sysdepends tabella causa per diventare non valido

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 115333
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
BUG #: 10215 (4.21a)BUG #: 16652 (SQLBUG_65)BUG #: 57903 (SQLBUG_70)BUG #: 56127 (SHILOH)		
Sintomi
Se una stored procedure o visualizzazione dipende da una tabella che è stata eliminata, sysdepends continueranno riferimento all'ID della tabella come dipendente, precedente anche se l'ID non esiste più. Di conseguenza, sp_depends non verrà visualizzata la dipendenza di oggetto corretto.
Workaround
Eliminare e ricreare la stored procedure o la visualizzazione. Le voci per sysdepends verranno ricreate correttamente.
Status
Microsoft ha confermato che si tratta un problema con i prodotti elencati all'inizio di questo articolo. Si è sta occupando del problema e pubblicherà nuove informazioni qui della Microsoft Knowledge Base riportato di seguito appena sarà disponibile.
Informazioni
Di seguito è un esempio del problema. Innanzitutto, creare la tabella e routine che fa riferimento tale tabella.
   create table testx (c int)   go   create procedure procx as select * from testx   go    select name, id from sysobjects where (name = "testx")   or (name = "procx")   go				

   name                           id   -----------------------------  ----------   testx                          464004684   procx                          480004741				

A questo punto eliminare la tabella e ricrearla utilizzando lo stesso nome. Quindi nuovo id oggetto.
   drop table testx   go   create table testx (c int)   go   select id from sysobjects where name = "testx"				

   id   -----------   512004855				

Una query a fronte di sysdepends mostra che l'id di oggetto dipendente non viene aggiornato.
   select id, depid from sysdepends where id = 480004741				

   id          depid   ----------  ----------   480004741   464004684				

Windows NT

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 115333 - Ultima revisione: 03/01/2014 09:53:38 - Revisione: 3.3

Microsoft SQL Server 4.21a Standard Edition, Microsoft SQL Server 6.0 Standard Edition, Microsoft SQL Server 6.5 Standard Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug KB115333 KbMtit
Feedback