et bah j'ai trouvé une solution ... c'est l'impémenté sous forme d'une procedure stockée et un pipe qui renvoie des ligne, et la je répond aussi à la question suivante "
question sur l'attribut TableDefinition d'un user defined table valued function "
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void StoredProcReturnResultSet()
{
// Create the record and specify the metadata for the columns.
int n = 3;
SqlMetaData[] sqlMetaData = new SqlMetaData

;
for(int i = 0 ; i<n; i++){
sqlMetaData

= new SqlMetaData("Column"+n.ToString(), SqlDbType.NVarChar, 100);
}
SqlDataRecord record = new SqlDataRecord(sqlMetaData);
// Mark the begining of the result-set.
SqlContext.Pipe.SendResultsStart(record);
// Send 10 rows back to the client.
for (int i = 0; i < 100000; i++)
{
// Set values for each column in the row.
record.SetString(0, "row " + i.ToString());
record.SetString(1, i.ToString());
record.SetString(2, "toto"+i.ToString());
// Send the row back to the client.
SqlContext.Pipe.SendResultsRow(record);
}
// Mark the end of the result-set.
SqlContext.Pipe.SendResultsEnd();
}
}
mais je ne sais pas encore commen le faire avec une fonction table