public IEnumerable <string> BuscarBancos(string server, string user, string senha) { var conexao = BaseDAO.CriarConexao(new AppSettings { ConnectionProvider = "sqlserver", ConnectionString = $"Data Source={server};User ID={user};Password={senha};Initial Catalog=master;Persist Security Info=True" }); var databases = conexao.Query <string>("SELECT name FROM master.dbo.sysdatabases WHERE name not in ('master', 'tempdb', 'model','msdb') ORDER BY name"); return(databases); }
public IActionResult BuscarColunas(string server, string user, string senha, string database, string tabela, bool sinonimo) { var conexao = BaseDAO.CriarConexao(new AppSettings { ConnectionProvider = "sqlserver", ConnectionString = $"Data Source={server};User ID={user};Password={senha};Initial Catalog={database};Persist Security Info=True" }); string sql; if (sinonimo) { sql = $"SELECT TOP(0) * INTO #tmpColumns FROM {tabela};" + "SELECT tempdb.sys.columns.name, tempdb.sys.columns.max_length, tempdb.sys.columns.precision, tempdb.sys.columns.scale, tempdb.sys.columns.is_nullable, tempdb.sys.columns.is_identity, sys.types.name as type " + "FROM tempdb.sys.columns " + "INNER JOIN sys.types ON tempdb.sys.columns.user_type_id = sys.types.user_type_id " + "WHERE object_id = OBJECT_ID('tempdb.dbo.#tmpColumns');" + "DROP TABLE #tmpColumns;"; } else { sql = "SELECT sys.columns.name, sys.columns.max_length, sys.columns.precision, sys.columns.scale, sys.columns.is_nullable, sys.columns.is_identity, sys.types.name as type " + "FROM sys.columns " + "INNER JOIN sys.types ON sys.columns.user_type_id = sys.types.user_type_id " + $"WHERE OBJECT_NAME(object_id) = '{tabela}';"; } var colunas = conexao.Query(sql).ToList(); var listaColunas = new List <dynamic>(); foreach (var column in colunas) { listaColunas.Add(new { column.name, column.type, column.is_nullable, column.is_identity }); } return(Ok(listaColunas)); }