Scusate, di solito lavorando in asp.net posto in questo spazio, ma in questo caso non so davvero: dove posso fare una domanda su SQL? :master:
Scusate, di solito lavorando in asp.net posto in questo spazio, ma in questo caso non so davvero: dove posso fare una domanda su SQL? :master:
Io azzardo... che moderatore mi punisca... scrivi pure qui...
Ciao
K
Kalman
Vabbeh! Io la faccio lo stesso.
In una stored procedure, è possibile effettuare una ricerca su una tabella utilizzando in maniera parametrica sia il nome della colonna che il valore che deve assumere?
In pratica posso fare qualche cosa del genere:
dove @colonna e @valore sono parametri che arrivano da programma?codice:SELECT * FROM (nome tabella) WHERE @colonna = @valore
Così come hai scritto tu no.
All'interno della stored puoi creare però una stringa contenete l'istruzione sql che poi fai eseguire con la stored di sistema
sp_executesql.
Passati @colonna ed @valore come parametri alla stored sarà:
DECLARE @sql varchar(500)
set @SQL = 'SELECT * FROM (nometabella) WHERE ' + @colonna + '=' + @valore
exec sp_executesql @sql
Fammi sapere
Ciao
K
Kalman
Grazie Kalman,
ho creato una stored procedure seguendo le tue indicazioni,
e l'ho mandato in esecuzione con l'SQL query analyzercodice:CREATE PROCEDURE RA_GetDatiAziende @colonna nvarchar (50), @valore nvarchar (50), AS set nocount on DECLARE @sql varchar(500) set @sql = 'SELECT * FROM (nometabella) WHERE ' + @colonna + '=' + @valore exec sp_executesql @sql return GO
mi da un errore:
codice:Server: messaggio 214, livello 16, stato 2, procedura sp_executesql, riga 14 Per la procedura è previsto il parametro '@statement' con tipo di dati ntext/nchar/nvarchar.
Mi è rimasta un n sulla tastiera![]()
DECLARE @sql nvarchar(500)
Se la query è più lunga di 500 caratteri puoi aumentare fino ad un massimo di 4000 la dimensione della variabile.
Ciao
K
Kalman