Domanda

sto usando SQL Server 2005 e voglio sincronizzare due tabelle che hanno la stessa definizione, ma esistono in diversi database. Unire in esiste solo nel 2008 e preferirei una sintassi in cui non devo specificare colonne nell'aggiornamento. Così mi sono imbattuto su vari post utilizzando la seguente sintassi:

UPDATE Destination FROM (Source INTERSECT Destination)
INSERT INTO Destination FROM (Source EXCEPT Destination)

Ma quando provo ad eseguirlo ottengo:

Incorrect syntax near the keyword 'FROM'.

Come posso ottenere questo lavoro? Ho più tabelle che ho necessità di sincronizzare e io non voglio specificare tutte le colonne in ogni affermazione.

Grazie per qualsiasi suggerimento!

È stato utile?

Soluzione

Secondo la documentazione in linea del comando update richiede la parola chiave set, e deve venire prima la parola from opzionale. Il insert comando non ha uno stand alone parola chiave from, l'from esiste solo come parte di un'istruzione select sia come fonte tabella derivata o all'interno di un'espressione di tabella comune.

Il link che hai di riferimento non sta mostrando valida la sintassi SQL Server 2005.

"Come posso ottenere questo lavoro? Ho più tabelle che ho necessità di sincronizzare e io non voglio specificare tutte le colonne in ogni affermazione."

Per update, è necessario specificare tutte le colonne. Per insert se l'origine e la destinazione hanno lo stesso struture quindi è possibile utilizzare insert into TARGTET_TABLE_NAME select * from SOURCE_TABLE_NAME MA che non è raccomandato per il codice di produzione, se il cambiamento di origine o di destinazione, la dichiarazione si romperebbe. Se sorgente e destinazione sono diversi, è necessario specificare le colonne su almeno un lato dell'inserto.

Altri suggerimenti

Mi dispiace se questo non risponde alla tua domanda, ma assumendo tutta la ragione di questo è nell'interesse di risparmio di tempo, non puoi semplicemente fare clic destro sulla tabella di origine e generare lo script INSERT, poi a destra -clic la tabella di destinazione e generare uno script SELEZIONA vuoto, quindi combinare le due cose? Questo sarà solo lavoro se un kill-e-fill è accettabile nel proprio ambiente.

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