Cmbinazione select, openrowset, inner join e stringa parametrica dell'...

lunedì 08 giugno 2015 - 16.50
Tag Elenco Tags  SQL Server 2008 R2

paolagumi Profilo | Junior Member

Buongiorno,
vorrei predisporre una stored procedure che legga in join due tabella:
una su db sql server e l'altra su un sistema as400 leggendola con l'openrowset.
Ho fatto così:

SELECT Matricola, Note, classe FROM [MioDb].BachecaMatricole
inner join
openrowset('IBMDA400', 'Data Source=ATC01; User ID=...; Password=...',
'select matr, classe FROM A201506 left outer join amitab on matr = amimatr where amianno=2015 and amimese=06)

on Matricola = matr

where Anno = @Anno and
Mese = @Mese

order by Matricola

Funziona tutto, ma il problema è che i nomi di una tabella aperta via openrowset sono parametrici (A201506) e la clausola 'where amianno=2015..... anche lei deve essere parametrica.
L'openrowset però non accetta come terzo parametro una stringa.
So che si potrebbe creare una stringa del tipo: declare @stringa = 'select.....
e poi fare: execute @stringa,
ma come faccio a costruire la sintassi con la mia select vista sopra, dal momento che vorrei sullo stesso record del risultato sia campi della tabella sql Bacheca che campi del risultato dell'openrowset?
grazie a tutti,
Paola

alx_81 Profilo | Guru

>Buongiorno,
ciao

>ma come faccio a costruire la sintassi con la mia select vista
>sopra, dal momento che vorrei sullo stesso record del risultato
>sia campi della tabella sql Bacheca che campi del risultato dell'openrowset?
ho paura che non hai tante scelte.. hai pensato di leggere in una temporanea prima solo l'openrowset e poi joinarla in un secondo momento?
in questo modo fai la stringa parametrizzata, la esegui e la salvi in una temporanea e poi utilizzi la temporanea per fare join..
Ma il tuo scenario non è molto lineare.. Forse potrebbe aiutarti un integration service?
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

paolagumi Profilo | Junior Member

grazie mille,
essendo pochi dati ho fatto con la soluzione della tabella temporeanea che popolo con l'execute dell'sqlstringa.
Poichè funziona, me lo faccio bastare così,
ciao
Paola
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5