public static List <QueryMetadata> getMetadata(MacheteContext context, string fromQuery) { var param = new SqlParameter("@query", escapeQueryText(fromQuery)); var queryResult = context.Query <QueryMetadata>().FromSql( // https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-describe-first-result-set-transact-sql // http://stackoverflow.com/questions/13766564/finding-number-of-columns-returned-by-a-query @"SELECT name, is_nullable, system_type_name FROM sys.dm_exec_describe_first_result_set(@query, NULL, 0);", param); return(queryResult.ToList()); }