ALTER TABLE
Estou com dificuldades em alterar e add colunas novas nas tabelas existentes no sqlserver2014
Até consegui ADD, porem eu preciso de pesquisar antes se já existe essa coluna antes de rodar o alter table.
então que preciso de rodar uma consulta e pegar um retorno para ver se já existe eu não executo o comando e se não eu executo ele.
Estou usando assim para alterar e segue a tentativa para pesquisar se já existe.
using (SqlCommand cmdfind = new SqlCommand([Ô]SELECT COUNT(COLUMN_NAME) AS retorno FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = [ô]Contador[ô] AND COLUMN_NAME = [ô]C[ô][Ô], DaoSqLServer.coSneXao))
{
cmdfind.ExecuteNonQuery();
if (Aqui vai o retorno que não estou conseguindo obter que se já existe)
{
MessageBox.Show([Ô]ja existe na tabela.[Ô]);
}
else
{
MessageBox.Show([Ô]não existe na tabela.[Ô]);
using (SqlCommand cmd = new SqlCommand([Ô]ALTER TABLE Contador ADD C varchar(75);[Ô], DaoSqLServer.coSneXao))
{
cmd.ExecuteNonQuery();
DaoSqLServer.coSneXao.Close();
}
}
Alguém poderia ajudar ..
Ao invés comparar com dois objetos command executa um objeto comando colocando um If no script Sql. Veja o exemplo que montei para você:
StringBuilder sbSql = new StringBuilder();
sbSql.Append([Ô]if Exists [Ô]);
sbSql.Append([Ô]( [Ô]);
sbSql.Append([Ô] SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS [Ô]);
sbSql.Append([Ô] WHERE TABLE_NAME = [ô]Contador[ô] AND COLUMN_NAME = [ô]C[ô] [Ô]);
sbSql.Append([Ô]) [Ô]);
sbSql.Append([Ô]Begin [Ô]);
sbSql.Append([Ô] Alter Table Contador alter Column C Varchar(50) [Ô]);
sbSql.Append([Ô]End [Ô]);
sbSql.Append([Ô]Else [Ô]);
sbSql.Append([Ô]Begin [Ô]);
sbSql.Append([Ô] Alter Table Contador Add C varchar(75) [Ô]);
sbSql.Append([Ô]End[Ô]);
SqlConnection suaConexao = new SqlConnection();
SqlCommand cmdfind = new SqlCommand(sbSql.ToString(), suaConexao);
cmdfind.ExecuteNonQuery();
Citação::
NETVOO
Ao invés comparar com dois objetos command executa um objeto comando colocando um If no script Sql. Veja o exemplo que montei para você:
StringBuilder sbSql = new StringBuilder();
sbSql.Append([Ô]if Exists [Ô]);
sbSql.Append([Ô]( [Ô]);
sbSql.Append([Ô] SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS [Ô]);
sbSql.Append([Ô] WHERE TABLE_NAME = [ô]Contador[ô] AND COLUMN_NAME = [ô]C[ô] [Ô]);
sbSql.Append([Ô]) [Ô]);
sbSql.Append([Ô]Begin [Ô]);
sbSql.Append([Ô] Alter Table Contador alter Column C Varchar(50) [Ô]);
sbSql.Append([Ô]End [Ô]);
sbSql.Append([Ô]Else [Ô]);
sbSql.Append([Ô]Begin [Ô]);
sbSql.Append([Ô] Alter Table Contador Add C varchar(75) [Ô]);
sbSql.Append([Ô]End[Ô]);
SqlConnection suaConexao = new SqlConnection();
SqlCommand cmdfind = new SqlCommand(sbSql.ToString(), suaConexao);
cmdfind.ExecuteNonQuery();
ELUCIMAR valeu Muito Obrigado Pela atenção, eu estava com esse if aqui mas não estava sabendo aplicar ele.
Valeu pelo Exemplo, funcionou perfeito com a alteração aqui para o projeto..