Insert to select

venerdì 19 febbraio 2010 - 10.38

trinity Profilo | Guru

Salve ragazzi,

devo eseguire questa select:

Insert into Apertura_chiusura (codalbergo,codcomune,Datainizioattivita,Datafineattivita,tipoapertura,giorniapertura,data1,data2,data3,data4,data5,data6,data7,data8,datatemp1,datatemp2)
Select codalb,codcomune,'01-01-1900','01-01-9999',0,365,'01-01-1900','01-01-1900','01-01-1900','01-01-1900','01-01-1900','01-01-1900','01-01-1900','01-01-1900','01-01-9999','01-01-9999' from dbo.Albergo

che funziona ma il problema sta nel fatto che nella tabella Apertura_chiusura ci sono già dei record presenti, quindi se eseguo la insert si genera un errore di duplicazione indici. Ora si può fare in modo che io eseguo la insert sopraindicata senza prendere dalla tabella albergo i record già inseriti nella tabella apertura_chiusra?

Please help me!!!
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>devo eseguire questa select:
>
>Insert into Apertura_chiusura (codalbergo,codcomune,Datainizioattivita,Datafineattivita,tipoapertura,giorniapertura,data1,data2,data3,data4,data5,data6,data7,data8,datatemp1,datatemp2)
>Select codalb,codcomune,'01-01-1900','01-01-9999',0,365,'01-01-1900','01-01-1900','01-01-1900','01-01-1900','01-01-1900','01-01-1900','01-01-1900','01-01-1900','01-01-9999','01-01-9999'
>from dbo.Albergo
>che funziona ma il problema sta nel fatto che nella tabella Apertura_chiusura
>ci sono già dei record presenti, quindi se eseguo la insert si
>genera un errore di duplicazione indici. Ora si può fare in modo
>che io eseguo la insert sopraindicata senza prendere dalla tabella
>albergo i record già inseriti nella tabella apertura_chiusra?
Eh? Non ho capito niente

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

speedx Profilo | Junior Member

Ciao,
tu puoi mettere una condizione in sql che controlla che non sia giä presente quel record, ad esempio:

SELECT 'A' AS KEY1, 'B' AS KEY2, 'C' AS FIELD
FROM Table A
LEFT OUTER JOIN
Apertura_Chiusura B
ON A.KEY1 = B.KEY1 (or value)
AND A.KEY2 = B.KEY2
WHERE B.KEY1 IS NULL
AND B.KEY2 IS NULL

In parole povere metti in JOIN la tabella di orgine e quella di destinazione, la join deve essere di tipo OUTER e devi inserie nella where la condizione di chiavi nulle.

//// Marcello C.
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5