Problema comparazione tabelle

domenica 14 dicembre 2014 - 18.10
Tag Elenco Tags  VB.NET  |  Windows 7  |  SQL Server 2008 R2

pieroalampi Profilo | Expert

salve ho un problema che sembra stupido ma al momento forse perché ho la mente confusa non trovo soluzione:
ho due tabelle su sql e dovrei fare in modo di inserire la riga o record mancante in una delle due tabelle:

tabella 1
listino 1
listino 2
listino 3
listino 4

tabella 2
listino 1
listino 3
listino 4

ecco a questo punto le devo mettere a confronto e inserire il solo record mancante cioè listino 2, vi prego svegliatemi la mente grazie

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

AntCiar Profilo | Expert

Ciao.

Io farei in questo modo:

Carico il contenuto della Tabella1 (i campi che mi interessa confrontare) in una lista.
Faccio la stessa cosa anche per la tabella 2

poi considero master i dati della 1 e scorrendo la lista 1 verifico se esiste il corrispondente nella 2. Se non esiste effettuo l'insert diretto e aggiungo l'emento nella lista 2.

Poi faccio la stessa cosa invertendo le liste. In questo modo le due tabelle risultano uguali
Cristian Barca

MaxMag Profilo | Newbie

Non potresti confrontare le due tabelle facendo una Select con la clausola NOT IN?

pieroalampi Profilo | Expert

diciamo che ho risolto ma voglio fare una prova con entrambi i consigli per ora grazie poi vediamo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

pieroalampi Profilo | Expert

gironzolando forse ho trovato qualcosa che potrebbe essere più efficace che ne dite?


tabella 1
listino 1
listino 2
listino 3
listino 4

tabella 2
listino 1
listino 3
listino 4


SELECT a.*
FROM tabella1 AS a
WHERE NOT EXISTS(
SELECT *
FROM tabella2
WHERE Campo1 = tabella1.listino 1
);
anche seguendo questa guida:
http://technet.microsoft.com/en-us/library/ms189062(v=sql.105).aspx

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

MaxMag Profilo | Newbie

I due operatori fanno sostanzialmente la stessa cosa. Non vedo grandi differenze qualora la tabella non riporti campi di tipo null.
In entrambi i casi ti viene restituito l'elenco dei record non presente nella seconda tabella.

pieroalampi Profilo | Expert

ma con un null praticamente riceverei un errore da gestire o mi sbaglio?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

MaxMag Profilo | Newbie

Se hai dei campi valorizzati a null, a seconda delle interrogazioni i predicati NOT IN e NOT EXIST potrebbero restituire risultati diversi ed avere differenti prestazioni.
Non mi sembra però il caso del tuo esempio. Cmq puoi utilizzare NOT EXIST e sincronizzare le 2 tabelle.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5