예제 #1
0
        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());
        }