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).

È stato utile?

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
scroll top