FIX: messaggio di errore quando l'agente di distribuzione tenta di applicare lo snapshot al server di sottoscrizione in SQL Server 2005: "deve dichiarare la variabile scalare"@Variable""

Bug #: 50001158 (Hotfix SQL)

Sintomi

Si consideri il seguente scenario. Configurare la replica transazionale in Microsoft SQL Server 2005. Creare lo snapshot iniziale correttamente nel server di pubblicazione. In questo scenario, quando l'agente di distribuzione tenta di applicare lo snapshot al server di sottoscrizione, viene visualizzato il seguente messaggio di errore:
Errore: 137 del livello di gravità: 15, stato: 2

È necessario dichiarare la variabile scalare "@Variable".
Questo problema si verifica se sono vere le seguenti condizioni:
  • La replica transazionale contiene un articolo creato basato su una tabella che contiene le colonne calcolate.
  • La colonna chiave primaria viene ordinata dopo le colonne calcolate vengono ordinate.
  • Dalla tabella syscolumns sistema, si può vedere che l'ID della colonna di chiave primaria è maggiore di colonna ID delle colonne calcolate.
  • La pubblicazione utilizza l'elaborazione degli snapshot concorrenti.

Causa

L'agente di distribuzione crea una stored procedure per inserire dati nel server di sottoscrizione. Tuttavia, la stored procedure presenta numeri di parametro non corretto.

Risoluzione

Informazioni sull'aggiornamento cumulativo

La correzione di questo problema è stata rilasciata prima 2 aggiornamento cumulativo. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2005 Service Pack 2, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
936305 cumulativo aggiornamento 2 per SQL Server 2005 Service Pack 2
Nota: Poiché le versioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con la versione precedente di SQL Server 2005. Microsoft consiglia di considerare l'applicazione alla versione più recente di correzione contenente tale hotfix. Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
937137 versioni di SQL Server 2005 rilasciate dopo il rilascio di SQL Server 2005 Service Pack 2
Aggiornamenti rapidi di Microsoft SQL Server 2005 vengono creati per service pack specifici di SQL Server. Un'installazione di SQL Server 2005 Service Pack 2, è necessario applicare un hotfix di SQL Server 2005 Service Pack 2. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack di SQL Server è incluso nel prossimo service pack di SQL Server.

Soluzione alternativa

Per risolvere questo problema, utilizzare uno dei seguenti metodi:
  • Quando si crea la tabella sottostante dell'articolo, assicurarsi che la colonna chiave primaria viene ordinata prima le colonne calcolate vengono ordinate.
  • Utilizzare l'elaborazione degli snapshot nativo o elaborazione degli snapshot di database invece di elaborazione degli snapshot concorrenti.

Stato

Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".

Ulteriori informazioni

Ad esempio, questo problema si verifica quando si utilizza l'istruzione seguente per creare la tabella sottostante dell'articolo:
CREATE TABLE [dbo].[test]([col1] [char](10) NOT NULL,
[col2] [char](10) NOT NULL,
[col_1_2] AS ([col1] + [col2]),
[ID] [int] IDENTITY(1,1) NOT FOR REPLICATION PRIMARY KEY NOT NULL
)

Proprietà

ID articolo: 936534 - Ultima revisione: 31 gen 2017 - Revisione: 1

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Workgroup Edition

Feedback