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
Parametrizzazione
venerdì 17 ottobre 2008 - 12.47
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
tarabasch84
Profilo
| Junior Member
125
messaggi | Data Invio:
ven 17 ott 2008 - 12:47
Ciao ragazzi,
vorrei creare una UDF che in base al nome della tabella, della colonna, e del valore passato mi restituisca true/false se il valore passato esiste o meno nella tabella. Lavoro in Sql server 2005. L'istruzione che dovrei parametrizzare è una semplice select:
SELECT @count = count(*) FROM @tablename WHERE @columnname = @value. Ho provaro con l'EXECUTE STRING ma non mi piace tanto e per di più non potrei eseguirlo all'interno della UDF
. Avete qualche soluzione?
--
Credo che parte della colpa sia di billy...
gabriel81
Profilo
| Junior Member
194
messaggi | Data Invio:
ven 17 ott 2008 - 13:43
In pratica vuoi conoscere il numero di righe restituitte da una select?
tarabasch84
Profilo
| Junior Member
125
messaggi | Data Invio:
ven 17 ott 2008 - 13:47
Beh nel mio caso particolare ti rispondo di si.
Però in realtà la mia è una richiesta un pochino più generica. Supponendo di voler parametrizzare in una SP piuttosto che in una UDF i nomi di tabelle o di colonne come dovrei comportarmi all'interno del batch sql?
--
Credo che parte della colpa sia di billy...
gabriel81
Profilo
| Junior Member
194
messaggi | Data Invio:
ven 17 ott 2008 - 14:15
Ti faccio un esempio, così forse è meglio:
USE [nomeDb]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[nome_della_sp]
@F_RagSociale nvarchar(50) = '',
@F_Prov nvarchar(2) = '',
@F_PIVA nvarchar(13) = ''
AS
BEGIN
SET NOCOUNT ON;
SELECT [FORNITORE]
,[RagSociale]
,[Localita]
FROM [dbo].[Fornitori]
WHERE RagSociale LIKE '%' + @F_Ragsociale + '%'
AND Prov LIKE '%' + @F_Prov + '%'
AND PIVA LIKE '%' + @F_PIVA + '%'
AND Cancellato = 0
END
Quindi crei i parametri, specifichi il tipo e dimensione e volendo anche un valore di default
Poi crei la struttura del SQL mettendo il nome del parametro al posto del valore.
SQL si preoccupa di mettere o meno gli apici.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
ven 17 ott 2008 - 14:45
>Supponendo di voler parametrizzare in una SP piuttosto che in
>una UDF i nomi di tabelle o di colonne come dovrei comportarmi
>all'interno del batch sql?
Le tabelle e le colonne non sono parametrizzabili a meno di ricorrere al Dynamic SQL, ma agendo in questo modo perdi tutti i vantaggi offerti dalle sp aprendo la strada ad attacchi di SQL Injection.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
tarabasch84
Profilo
| Junior Member
125
messaggi | Data Invio:
ven 17 ott 2008 - 15:44
>Le tabelle e le colonne non sono parametrizzabili a meno di ricorrere
>al Dynamic SQL, ma agendo in questo modo perdi tutti i vantaggi
>offerti dalle sp aprendo la strada ad attacchi di SQL Injection.
Escludendo la possibilità di utilizzare il dynamic SQL, mi stati dicendo che non ho altre possibilità lavorando in t-sql ovviamente?
--
Credo che parte della colpa sia di billy...
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
ven 17 ott 2008 - 15:45
>Escludendo la possibilità di utilizzare il dynamic SQL, mi stati
>dicendo che non ho altre possibilità lavorando in t-sql ovviamente?
Esatto.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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 !