Passaggio nome di una tabella come parametro in una funzione sqlserver...

lunedì 21 aprile 2008 - 11.08

mquark Profilo | Newbie

Ciao ,

Ho creato una funzione semplice semplice che mi restituisce una tabella

CREATE FUNCTION dbo.Check_Data(@table varchar(30),@Data1 int)
RETURNS table

AS


RETURN select * from tabella where isdate(@Data1)=0

In realtà
vorrei scriverla cosi

CREATE FUNCTION dbo.Check_Data(@table varchar(30),@Data1 int)
RETURNS table

AS


RETURN select * from @table where isdate(@Data1)=0

ma non mi riconosce il parametro @table.
C'è un modo per passare il parametro @table nella select ???????


grazie

lbenaglia Profilo | Guru

>C'è un modo per passare il parametro @table nella select ???????
No, dato che i nomi delle tabelle non sono parametrizzabili.
Una bruttissima soluzione che spesso si vede in giro consiste nel ricorrere al Dynamic SQL ma questo apre le porte ad una lunghissima serie di problemi e pericoli descritti minuziosamente in questo articolo di Erland:
http://www.sommarskog.se/dynamic_sql.html

Ad ogni modo nelle UDF non puoi ricorrere al Dynamic SQL, quindi il problema non si pone

>grazie
Prego.

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

mquark Profilo | Newbie

Breve e dolorosa :-)

grazie comunque
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