Usuário com melhor resposta
Sistema de Backup SQL / Ajuda com excessões?

Pergunta
-
Boa tarde pessoal,
Criei um sistema que realiza backup no SQL, porém na lista de opções que ele exibe, não quero que exiba os bancos do sistema (ReportServer e ReportServerTempDB), como faço para colocar essa excessão?
Segue o código que estou utilizando:
connString = "Data Source =" + txtNomeServidor.Text + "; User Id=" + txtUsuario.Text + "; Password=" + txtSenha.Text + ""; conn = new SqlConnection(connString); conn.Open(); sql = "SELECT * FROM sys.databases d WHERE d.database_id>4"; cmd = new SqlCommand(sql, conn); sqlreader = cmd.ExecuteReader(); cbSelecione.Items.Clear(); while (sqlreader.Read()) { cbSelecione.Items.Add(sqlreader[0].ToString()); }
Respostas
-
Só altera sua query no código que me mandou. assim:
connString = "Data Source =" + txtNomeServidor.Text + "; User Id=" + txtUsuario.Text + "; Password=" + txtSenha.Text + ""; conn = new SqlConnection(connString); conn.Open(); sql = "SELECT * FROM sys.databases d WHERE LOWER(d.name) not in ('master', 'tempdb', 'msdb', 'resources', 'reportserver', 'reportserverdb')"; cmd = new SqlCommand(sql, conn); sqlreader = cmd.ExecuteReader(); cbSelecione.Items.Clear(); while (sqlreader.Read()) { cbSelecione.Items.Add(sqlreader[0].ToString()); }
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta developer.training segunda-feira, 5 de setembro de 2016 19:19
- Editado André SeccoMVP segunda-feira, 5 de setembro de 2016 19:22
Todas as Respostas
-
Olá,
Não tem uma propriedade específica que garanta que ela seja do "sistema", portanto terá que fazer algo assim em sua query:
SELECT name FROM sys.databases WHERE name NOT IN ('master', 'model', 'tempdb', 'msdb', 'Resource')
Valeu!Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco -
-
Só altera sua query no código que me mandou. assim:
connString = "Data Source =" + txtNomeServidor.Text + "; User Id=" + txtUsuario.Text + "; Password=" + txtSenha.Text + ""; conn = new SqlConnection(connString); conn.Open(); sql = "SELECT * FROM sys.databases d WHERE LOWER(d.name) not in ('master', 'tempdb', 'msdb', 'resources', 'reportserver', 'reportserverdb')"; cmd = new SqlCommand(sql, conn); sqlreader = cmd.ExecuteReader(); cbSelecione.Items.Clear(); while (sqlreader.Read()) { cbSelecione.Items.Add(sqlreader[0].ToString()); }
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta developer.training segunda-feira, 5 de setembro de 2016 19:19
- Editado André SeccoMVP segunda-feira, 5 de setembro de 2016 19:22
-
-
A query está correta. Tem certeza que tem alguma base a não ser essas do sistema?
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco -
A query está correta. Tem certeza que tem alguma base a não ser essas do sistema?
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_seccoDeu certo amigo, eu estava colocando os nomes sem validação de maiúsculo/minúsculo. Obrigado!
sql = "SELECT * FROM sys.databases d WHERE d.name not in('master','tempdb','model','msdb','ReportServer','ReportServerTempDB')";