Problema con sp_executesql

lunedì 10 dicembre 2007 - 14.21

jordi75 Profilo | Junior Member

Ciao,
ho la necessità di fare una serie di insert in una tabella senza conoscere a priori il numero dei campi interessati.
Per fare ciò ho creato una stored procedure che mi costruisce la stringa sql dinamicamente inserendomi i campi necessari e i valori.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

in cui @SQLSTRCAMPI è una stringa con l'elenco dei campi e @SQLSTRVALORI è l'elenco dei parametri

ES:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

vado quindi a eseguire sp_executesql in questo modo:

EXEC SP_EXECUTESQL @SQLSTR, @SQLSTRPARAM, @SQLSTRPARVAL

dove @SQLSTRPARAM è la stringa con la definizione dei parametri
ES:
@IDMATRICE NVARCHAR(4000), @SEQUENZA INT,@00007 NVARCHAR(50),@00011 NVARCHAR(50)

e @SQLSTRPARVAL è la stringa che contiene i valori dei parametri
Es:
14,2,242,333

Quest'ultimo parametro credo sia il problema. Da quello che ho capito non posso passare i valori come una variabile stringa,o sbaglio?

C'è modo di passare i valori a sp_executesql senza specificarli parametro per parametro?

Grazie

lbenaglia Profilo | Guru

>C'è modo di passare i valori a sp_executesql senza specificarli
>parametro per parametro?
No, la sintassi della sp_executesql prevede una serie di coppie @parametro = valore.
Tutti i dettagli sui Books Online.

>Grazie
Prego.

Ciao!

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

jordi75 Profilo | Junior Member

mmmm...cavolo....

un consiglio su come costruire il mio insert dinamico?
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