Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
INSERT IN TABELLA
martedì 03 aprile 2012 - 13.11
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
hellen
Profilo
| Newbie
9
messaggi | Data Invio:
mar 3 apr 2012 - 13:11
Ciao, apro la mia seconda richiesta.
Ho 2 tabelle SQL, la prima è ARTICOLI e la seconda è LISTINI
La prima tabella contiene, codice articolo, descrizione, prezzo euro, ...
La seconda contiene codice articolo, descrizione, numero listino, prezzo euro, ...
Devo leggere l'articolo dalla prima tabella e inserire nella seconda il prezzo euro con numero listino=99
Poi devo rileggere l'articolo dalla prima tabella, reinserire nella seconda lo stesso prezzo euro ma con numero listino=3
Quindi nella seconda tabella devo avere 2 record con lo stesso codice articolo ma con 2 numero listino diversi.
ecco il mio codice:
INSERT INTO [prova].[dbo].[LISTINI]
(CODART, NRLISTINO, UM, PREZZO, PREZZOEURO, UTENTEMODIFICA, DATAMODIFICA)
SELECT CODART, "99", UM, PREZZO, PREZZOEURO, UTENTEMODIFICA, DATAMODIFICA
FROM [prova].[dbo].[ARTICOLI] a
LEFT JOIN [PROVA].[dbo].[LISTINI]
on a.CODART = [PROVA].[dbo].[LISTINI].[CODART]
WHERE [PROVA].[dbo].[LISTINI].[CODART] is null
INSERT INTO [prova].[dbo].[LISTINI]
(CODART, NRLISTINO, UM, PREZZO, PREZZOEURO, UTENTEMODIFICA, DATAMODIFICA)
SELECT CODART, "3", UM, PREZZO, PREZZOEURO, UTENTEMODIFICA, DATAMODIFICA
FROM [prova].[dbo].[ARTICOLI] a
LEFT JOIN [PROVA].[dbo].[LISTINI]
on a.CODART = [PROVA].[dbo].[LISTINI].[CODART]
WHERE [PROVA].[dbo].[LISTINI].[CODART] is null and [PROVA].[dbo].[LISTINI].[NRLISTINO]='99'
Il problema è che il primo insert del listino 99 viene inserito correttamente ma con il secondo insert ho l'errore di violazione di codice, probabilmente sbaglio qualcosa nella where...
Grazie mille a tutti!
Hellen
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 4 apr 2012 - 15:16
>Ciao, apro la mia seconda richiesta.
Ciao
>INSERT INTO [prova].[dbo].[LISTINI]
>(CODART, NRLISTINO, UM, PREZZO, PREZZOEURO, UTENTEMODIFICA, DATAMODIFICA)
>SELECT CODART, "3", UM, PREZZO, PREZZOEURO, UTENTEMODIFICA, DATAMODIFICA
>FROM [prova].[dbo].[ARTICOLI] a
>LEFT JOIN [PROVA].[dbo].[LISTINI]
>on a.CODART = [PROVA].[dbo].[LISTINI].[CODART]
>WHERE [PROVA].[dbo].[LISTINI].[CODART] is null and [PROVA].[dbo].[LISTINI].[NRLISTINO]='99'
>
>Il problema è che il primo insert del listino 99 viene inserito
>correttamente ma con il secondo insert ho l'errore di violazione
>di codice, probabilmente sbaglio qualcosa nella where...
dovresti cortesemente passare la create della tabella e qualche record di esempio, in modo che possiamo provare per bene le query.
Detto questo, se vuoi replicare solo i nuovi inseriti "sopra" in quella sotto, semplicemente cambiando il codart,
ti consiglio di dare un'occhiata alla clausola OUTPUT. Sempre che nella versione del tuo SQL Server sia supportata..
Che versione hai?
>Grazie mille a tutti!
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Torna su
Stanze Forum
Elenco Threads
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 !