FIX: Agente di distribuzione potrebbe bloccarsi dopo si aggiunge o si elimina una colonna per un articolo pubblicato

Traduzione articoli Traduzione articoli
Identificativo articolo: 837231 - Visualizza i prodotti a cui si riferisce l?articolo.
Bug #: 471158 (SQL Server 8.0)
Correzioni di Microsoft SQL Server 2000 vengono distribuite come un unico file scaricabile. PoichÚ le correzioni sono cumulative, ogni nuova versione contiene tutti gli aggiornamenti rapidi e tutte le correzioni di protezione rilasciate con SQL Server 2000 precedente versione di correzione.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si aggiunge una colonna a un articolo pubblicato o rimuovere una colonna da un articolo pubblicato e prende parte l'articolo in una replica transazionale, Ŕ possibile che l'agente di distribuzione corrispondente non venga eseguito correttamente. ╚ inoltre possibile che venga visualizzato un messaggio di errore analogo al seguente:
Virgoletta prima la stringa di caratteri ' Column Name '.
Questo problema pu˛ verificarsi quando le seguenti condizioni sono vere:
  • L'articolo Ŕ configurato per utilizzare i comandi SQL per replicare il comando INSERT, il comando UPDATE o il comando DELETE agli utenti sottoscrittori corrispondente.
  • Le modifiche, quali inserimenti, aggiornamenti o eliminazioni, apportate in questo articolo nel server di pubblicazione non vengono ancora applicate nei server di sottoscrizione.

Risoluzione

Informazioni sul Service pack

Per risolvere il problema, ottenere il service pack pi¨ recente per Microsoft SQL Server 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
290211Come ottenere il service pack pi¨ recente per SQL Server 2000

Informazioni sull'hotfix

La versione inglese di questo aggiornamento rapido (hotfix) presenta gli attributi di file (o successivi) elencati nella tabella riportata di seguito. Date e ore per questi file sono indicati nella coordinated universal time (UTC). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e l'ora locale, utilizzare la scheda fuso orario dello strumento Data e ora del Pannello di controllo.
   Date         Time   Version        Size       File name 
   --------------------------------------------------------- 
   31-May-2003  18:45  2000.80.818.0     78,400  Console.exe 
   28-Oct-2003  04:21  2000.80.873.0    315,968  Custtask.dll 
   30-Jan-2004  16:29  2000.80.911.0     33,340  Dbmslpcn.dll 
   25-Apr-2003  02:12                   786,432  Distmdl.ldf 
   25-Apr-2003  02:12                 2,359,296  Distmdl.mdf 
   30-Jan-2003  01:55                       180  Drop_repl_hotfix.sql 
   12-Sep-2003  03:26  2000.80.859.0  1,905,216  Dtspkg.dll 
   26-Aug-2003  20:16  2000.80.854.0    528,960  Dtspump.dll 
   23-Jun-2003  22:40  2000.80.837.0  1,557,052  Dtsui.dll 
   23-Jun-2003  22:40  2000.80.837.0    639,552  Dtswiz.dll 
   24-Apr-2003  02:51                   747,927  Instdist.sql 
   03-May-2003  01:56                     1,581  Inst_repl_hotfix.sql 
   30-Jan-2004  16:29  2000.80.911.0     90,692  Msgprox.dll 
   01-Apr-2003  02:07                     1,873  Odsole.sql 
   30-Jan-2004  16:29  2000.80.911.0     62,024  Odsole70.dll 
   30-Jan-2004  16:29  2000.80.911.0     25,144  Opends60.dll 
   30-Jan-2004  16:28  2000.80.911.0     57,904  Osql.exe 
   02-Apr-2003  23:15  2000.80.797.0    279,104  Pfutil80.dll 
   04-Aug-2003  18:17                   550,780  Procsyst.sql 
   12-Sep-2003  00:37                    12,305  Qfe469315.sql 
   22-May-2003  22:57                    19,195  Qfe469571.sql 
   30-Jan-2004  01:16                 1,090,380  Replmerg.sql 
   30-Jan-2004  16:29  2000.80.911.0    221,768  Replprov.dll 
   30-Jan-2004  16:29  2000.80.911.0    307,784  Replrec.dll 
   29-Jan-2004  23:24  2000.80.911.0    159,813  Replres.rll 
   06-Sep-2003  00:00                 1,087,150  Replsys.sql 
   13-Aug-2003  16:28                   986,603  Repltran.sql 
   30-Jan-2004  16:29  2000.80.911.0    287,304  Rinitcom.dll 
   30-Jan-2004  16:29  2000.80.911.0     57,916  Semnt.dll 
   29-Jul-2003  20:13  2000.80.819.0    492,096  Semobj.dll 
   31-May-2003  18:27  2000.80.818.0    172,032  Semobj.rll 
   02-Jan-2004  19:42  2000.80.904.0     53,832  Snapshot.exe 
   09-Dec-2003  20:07                   117,834  Sp3_serv_uni.sql 
   05-Feb-2004  00:46  2000.80.913.0     28,672  Sqlagent.dll 
   05-Feb-2004  00:47  2000.80.913.0    311,872  Sqlagent.exe 
   19-Feb-2004  18:02  2000.80.916.0    168,001  Sqlakw32.dll 
   30-Jan-2004  16:29  2000.80.911.0  4,215,360  Sqldmo.dll 
   07-Apr-2003  17:44                    25,172  Sqldumper.exe 
   29-Jan-2004  23:17  2000.80.911.0     28,672  Sqlevn70.rll 
   05-Mar-2004  17:13  2000.80.922.0    180,792  Sqlmap70.dll 
   03-Sep-2003  02:56  2000.80.857.0    188,992  Sqlmmc.dll 
   02-Sep-2003  23:03  2000.80.857.0    479,232  Sqlmmc.rll 
   22-Oct-2003  00:08  2000.80.871.0    401,984  Sqlqry.dll 
   30-Jan-2004  16:29  2000.80.911.0     57,920  Sqlrepss.dll 
   09-Mar-2004  19:54  2000.80.922.0  7,614,545  Sqlservr.exe 
   30-Jan-2004  16:29  2000.80.911.0    590,396  Sqlsort.dll 
   30-Jan-2004  16:29  2000.80.911.0     45,644  Sqlvdi.dll 
   30-Jan-2004  16:29  2000.80.911.0    106,588  Sqsrvres.dll
   30-Jan-2004  16:29  2000.80.911.0     33,340  Ssmslpcn.dll
   30-Jan-2004  16:29  2000.80.911.0     82,492  Ssnetlib.dll 
   30-Jan-2004  16:29  2000.80.911.0     25,148  Ssnmpn70.dll 
   28-Oct-2003  04:21  2000.80.873.0    123,456  Stardds.dll 
   30-Jan-2004  16:29  2000.80.911.0    158,240  Svrnetcn.dll 
   30-Jan-2004  16:29  2000.80.911.0     76,416  Svrnetcn.exe 
   30-Apr-2003  23:52  2000.80.816.0     45,132  Ums.dll 
   30-Jan-2004  16:29  2000.80.911.0     98,872  Xpweb70.dll
Nota A causa delle dipendenze fra i file, la funzionalitÓ che contiene i file o l'aggiornamento rapido (hotfix) pi¨ recente pu˛ contenere anche ulteriori file.

Workaround

Per risolvere questo problema, Ŕ necessario configurare l'articolo utilizzare la stored procedure per replicare il comando INSERT, il comando UPDATE o il comando DELETE agli utenti sottoscrittori corrispondente. Per effettuare questa operazione, attenersi alla seguente procedura nel server di pubblicazione:
  1. Eseguire il codice per eliminare tutte le sottoscrizioni per l'articolo riportato di seguito:
    USE Publication Database
    GO
    
    EXEC sp_dropsubscription 
    	@publication=N'Publication Name', 
    	@subscriber = N'all', 
    	@article = N'Article Name', 
    	@destination_db = N'all'
    GO
    
  2. Eseguire il codice riportato di seguito per eliminare l'articolo dalla pubblicazione transazionale corrente:
    USE Publication Database
    GO
    
    EXEC sp_droparticle 
    	@publication = N'Publication Name', 
    	@article = 'Article Name',
    	@force_invalidate_snapshot = 1
    GO
    
  3. Aggiungere l'articolo della pubblicazione transazionale corrente in modo che l'articolo utilizza stored procedure per replicare il comando INSERT, il comando UPDATE o il comando DELETE i sottoscrittori corrispondenti. To do this, run the following code:
    USE Publication Database
    GO
    
    EXEC sp_addarticle 
    	@publication = N'Publication Name', 
    	@article = N'Article Name', 
    	@source_owner = N'dbo', 
    	@source_object = N'Source Table Name', 
    	@destination_table = N'Destination Table Name', 
    	@type = N'logbased', 
    	@creation_script = null, 
    	@description = null, 
    	@pre_creation_cmd = N'drop', 
    	@schema_option = 0x00000000000000F3, 
    	@status = 16, 
    	@vertical_partition = N'false', 
    	@ins_cmd = N'sp_MSins_Article Name', 
    	@del_cmd = N'sp_MSdel_Article Name', 
    	@upd_cmd = N'sp_MSupd_Article Name', 
    	@filter = null, 
    	@sync_object = null, 
    	@auto_identity_range = N'false'
    GO
    
    Note Make sure that you modify the following parameters before you run the Transact-SQL statements:
    • @ publication : nome della pubblicazione corrente
    • @ article : nome del nuovo articolo
    • @ source_object : nome della tabella sottostante Ŕ rappresentata dal nuovo articolo
    • @ destination_table : nome della tabella di destinazione che verrÓ creata nel server di sottoscrizione
    • @ ins_cmd : sp_MSins_ CALL Article Name
    • @ del_cmd : sp_MSdel_ CALL Article Name
    • @ upd_cmd : MCALL sp_MSupd_ Article Name
    • @ force_invalidate_snapshot : 1, se per la pubblicazione Ŕ giÓ stato generato un snapshot
    Inoltre, se l'articolo contiene una colonna di identitÓ e si desidera gestire la gestione di identitÓ intervallo, Ŕ necessario impostare il parametro @ opzione auto_identity_range su true .
  4. Aggiungere sottoscrizioni all'articolo che viene aggiunto alla pubblicazione transazionale:
    • Ogni sottoscrizione push che sottoscrive la pubblicazione transazionale corrente, eseguire istruzioni Transact-SQL che analoga al seguente in SQL Query Analyzer nel server di pubblicazione nel database di pubblicazione:
      USE Publication Database
      GO
      
      EXEC sp_addsubscription 
      	@publication = N'Publication Name', 
      	@article = N'Article Name', 
      	@subscriber = N'Subscriber Name', 
      	@destination_db = N'Destination Database', 
      	@sync_type = N'automatic', 
      	@update_mode = N'read only', 
      	@offloadagent = 0, 
      	@dts_package_location = N'distributor'
      GO
      Nota assicurarsi che Ŕ modificare i parametri seguenti prima di eseguire le istruzioni Transact-SQL:
      • @ publication : nome della pubblicazione corrente
      • @ article : nome del nuovo articolo
      • @ subscriber : nome del server di sottoscrizione
      • @ destination_db : nome del database di destinazione che contiene la sottoscrizione
      Inoltre, accertarsi che i parametri che possono modificare le proprietÓ della sottoscrizione esistenti non vengano modificati.
    • Per aggiungere sottoscrizioni l'articolo nelle sottoscrizioni pull per tutti i server di sottoscrizione esistente alla pubblicazione transazionale, eseguire istruzioni Transact-SQL che analoga al seguente in SQL Query Analyzer nel server di pubblicazione nel database di pubblicazione:
      USE Publication Database
      GO
      
      EXEC sp_refreshsubscriptions 
      	@publication = N'Publication Name'
      GO
  5. Consente di eseguire l'agente snapshot corrispondente alla pubblicazione corrente transazionale nel server di distribuzione.
  6. Eseguire l'agente di distribuzione che corrisponde a ogni sottoscrizione che sottoscrive la pubblicazione di transazione corrente.

Status

Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".

Questo problema Ŕ stato innanzitutto corretto in SQL Server 2000 Service Pack 4.

Riferimenti

Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
824684Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

ProprietÓ

Identificativo articolo: 837231 - Ultima modifica: venerdý 2 novembre 2007 - Revisione: 2.3
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Chiavi:á
kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB837231 KbMtit
Traduzione automatica articoli
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: 837231
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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