menu
Fórum Adianti
menu Menu
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



Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto 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