Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Comandos DDL / Consiguração para o SQL Server Boa noite. Consigo rodar comandos DDL e/ou de configuração para o SQL Server? Exemplo: ALTER TABLE [nome_tabela] ADD [nome_coluna] [tipo] NOT NULL ou SET IDENTITY_INSERT [noe_tabela] ON ...
L
Comandos DDL / Consiguração para o SQL Server  
Boa noite. Consigo rodar comandos DDL e/ou de configuração para o SQL Server?
Exemplo:
ALTER TABLE [nome_tabela] ADD [nome_coluna] [tipo] NOT NULL
ou
SET IDENTITY_INSERT [noe_tabela] ON



Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (2)


VP

Olá Leandro,

Você pode executar qualquer comando DDL via PHP.

Segue um exemplo abaixo, mas a regra vale para todos os comandos.

// Atualiza Sequencia ID das tabelas public function onUpdateSeq($param = null) { try { $conn = TTransaction::open('db_rural_web'); $sql = "SELECT setval('tb_atividades_id_seq', coalesce(max(id),0) + 1, false) FROM tb_atividades; SELECT setval('tb_atividades_itens_id_seq', coalesce(max(id),0) + 1, false) FROM tb_atividades_itens"; $this->pdo = TTransaction::get(); $this->pdo->exec($sql); TTransaction::close(); new TMessage('info', 'Sequencia atualizada com sucesso!'); } catch (Exception $e) { TTransaction::rollback(); TTransaction::close(); new TMessage('error', 'Erro na operação. Verifique!'); } }

L

Grato Valdiney.

Consegui fazer o que eu queria.

Estava com 2 transações, uma para um banco MySQL (dados de origem) e outra para SQL Server (dados destino) e estava rodando os comandos DDL SQL Server na transação do My SQL

Meu código:
TTransaction::open('banco_mysql'); $connMySQL = TTransaction::get(); // Tabela origem $result = $connMySQL->query('SELECT campos ' . 'FROM tabela_origem ' ); TTransaction::open('banco_sqlsrv'); $connSQLServer = TTransaction::get(); $connSQLServer->exec('SET IDENTITY_INSERT tabela_destino ON'); foreach ($result as $row) { TabelaDestino::create( [ 'campos_a' => $row['campo_a'], 'campo_b' => $row['campo_b'] ]); } $connSQLServer->exec('SET IDENTITY_INSERT tabela_destino OFF'); TTransaction::close(); // SQL Server TTransaction::close(); // MySQL