Domanda

Ho creato un utente definito tipo di tabella di nome tvp_Shipment con due colonne (id e nome). generato uno snapshot e il definito dall'utente tipo di tabella è stata correttamente propagato a tutti gli abbonati.

Stavo usando questo TVP in una stored procedure e tutto ha funzionato bene.

Poi ho voluto aggiungere un altro colonna CREATED_DATE a questa tabella valutata parameter.I lasciato cadere la stored procedure (dalla replica troppo) e anche ho lasciato cadere e ricreato il tipo definito dall'utente tabella con 3 colonne e poi ricreato la stored procedure e abilitato per la pubblicazione

Quando ho generare un nuovo snapshot, i cambiamenti in definito dall'utente tipo di tabella non sono propagate al sottoscrittore. La colonna appena aggiunta non è stato aggiunto alla sottoscrizione.

i messaggi di errore:

The schema script 'usp_InsertAirSa95c0e23_218.sch' could not be propagated to the subscriber. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147201001)
Get help: http://help/MSSQL_REPL-2147201001
Invalid column name 'created_date'. (Source: MSSQLServer, Error number: 207)
Get help: http://help/207
È stato utile?

Soluzione

In pubblicazione, è l'opzione replicate_ddl impostato a true? Inoltre, qual è il valore per il valore pre_cmd per l'articolo in questione? Se nessuno di quelli che punto nella giusta direzione, dare un'occhiata al file che si dice sta fallendo. Dovrebbe essere un file di T-SQL leggibile che è situato presso il distributore nella cartella snapshot. Se l'errore non è ovvio, si può provare a eseguirlo nel server di sottoscrizione e vedere che cosa ti dà. La mia ipotesi è che non replicare il cambiamento colonna, ma si mette un indice su di esso che fa riferimento a tale colonna. Ma questa è solo una supposizione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top