Ho visto che per dichiarare una variabile al posto di un nome di tabella è necessario, per T-SQL, dichiarare la variabile come "LocationTableType":
CREATE PROCEDURE MiaProcedure
@Tabella LocationTableType READONLY
AS
SELECT Codice, Descrizione FROM @Tabella
...
Ora vorrei utilizzare queste variabili come parametri in una mia procedura, ma non riesco
Dim sSQL As String = "SELECT Codice, Descrizione FROM @Tabella AS t"
Dim cm As New SqlClient.SqlCommand(sSQL)
cm.Parameters.Add("@Tabella", SqlDbType.Variant, 0)
cm.Parameters.Item("@Tabella").Value = "MioServer.MioDB.MioSchema.MiaTabella"
L'eccezione restituita è: "Dichiarare la variabile di Tabella '@Tabella'"
Credo che il problema sia nell'inputazione del tipo di dato del parametro -cm.Parameters.Add("@Tabella", SqlDbType.Variant, 0)- che ho provato ad utilizzare come Variant perchè non è definito nulla per LocationTableType... Ovviamente anche VarChar non funziona...
Come posso a questo punto parametrizzare in ADO.NET delle tabelle nei miei CommandText? E' 2 giorni che ci stò impazzendo...
Grazie!!!
P.S.: per me sarebbe sufficiente parametrizzare, non tanto il nome di tabella, ma la parte di stringa che identifica la posizione della tabella (MioServer.MioDB.MioSchema)...
EDIT:
Ho notato che LocationTableType esiste solo in SQL2008... Io uso SQL2005, qualche consiglio?
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole