Chiamando con valori di Tabella SQL Funzioni .NET
Domanda
Funzioni a valori scalari può essere chiamato da .NETTO come segue:
SqlCommand cmd = new SqlCommand("testFunction", sqlConn); //testFunction is scalar
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("retVal", SqlDbType.Int);
cmd.Parameters["retVal"].Direction = ParameterDirection.ReturnValue;
cmd.ExecuteScalar();
int aFunctionResult = (int)cmd.Parameters["retVal"].Value;
So anche che funzioni con valori di tabella possono essere chiamati in un modo simile, per esempio:
String query = "select * from testFunction(param1,...)"; //testFunction is table-valued
SqlCommand cmd = new SqlCommand(query, sqlConn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(tbl);
La mia domanda è: è possibile funzioni con valori di tabella di essere chiamato come stored procedure, come le funzioni a valori scalari possibile?(ad esempio, per replicare il mio primo frammento di codice con una funzione con valori di tabella chiamata e ottenere la tabella restituita attraverso un ReturnValue parametro).
Soluzione
No, perché è necessario selezionarle.Tuttavia, è possibile creare una stored proc wrapper, che può sconfiggere il punto di avere una funzione di tabella.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow