Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Leme Cardoso

SQL Server - Exportar Estrutura

Recommended Posts

Boa noite amigos!

 

Tenho um banco de dados no SQL Server onde não consigo encontrar os vínculos entre as tabelas, tem a possibilidade de exportar somente a estrutura para verificar os vínculos?

Ou alguma outra forma?

 

Agradeço desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

André, como assim nao consegue encontrar os vinculos?

quando você da um sp_helptext sua_tabela nao aparece? 

 

Qual a versao do SQL? 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer apenas o script das estruturas?

Se sim, você pode clicar com o botão direito do mouse na base de dados que você quer e clica em: Tasks >> Generate Script >> Aí você tem a opção de criar a estrutura completa ou só as tabelas que você quiser. >> Save to new query window.

 

É isso, aí você consegue ver já o script de toda a estrutura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você executar o comando

sp_help NOME_DA_TABELA

ele vai retornar um monte de informações da tabela, colunas, indices, etc, mas o que você precisa olhar com cuidado é:

- constraint - onde vai ter as "Foreign Key, que são as outras tabelas que a sua tabela referencia

Table is referenced by foreign key - Como o nome já fala, tabelas que referenciam a sua tabela

 

Com isso você sabe quem sua tabela aponta e quem aponta pata a sua tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por FabianoSouza
      Preciso corrigir o erro "Somente uma expressão pode ser especificada na lista de seleção quando a subconsulta não é introduzida com EXISTS." da minha consulta.
      SELECT TA.titulo AS 'Trilha' , (SELECT CAST(ROUND((Comportamental * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Comportamental ,CAST(ROUND((Técnico * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Técnico FROM ( SELECT SUM(CASE WHEN dbo.tabB.enfoque = '1' THEN 1 ELSE 0 END) AS Comportamental, SUM(CASE WHEN dbo.tabB.enfoque = '2' THEN 1 ELSE 0 END) AS Técnico, COUNT(*) AS Total FROM dbo.tabB ) tab ) FROM dbo.tabA AS TA Nessa consulta, preciso trazer o título (da tabA) e o resultado de um cálculo feito na subconsulta, nos campos Comportamental e Técnico.
    • Por Elisame Araújo
      Seguinte,
      Eu tenho uma página de atualização de lista de faixas que estão agrupados por álbum, com os dados vindo através de parâmetros na url como o albumID e detalhes e são retornados dentro de um while.
      O que eu queria é que ele atualizasse todos os campos que fossem editados se eles fossem modificados, mas o que o ocorre é que apenas o último registro é atualizado.
       
      O script que traz as faixas:
       
      <tr> <form class="form-group" method="post" action="includes/funcoes/atualizar-faixas.php"> <?php while($sqlSelect = mysqli_fetch_assoc($result)) { ?> <td><input type="text" value="<?php echo $sqlSelect['trackNumero'] ?>" class="form-control" name="trackNumero"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTitulo'] ?>" class="form-control" name="trackTitulo"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTraducao'] ?>" class="form-control" name="trackTraducao"></td> <td><input type="text" value="<?php echo $sqlSelect['trackID'] ?>" class="form-control" name="trackID" readonly></td> <td><input type="text" value="<?php echo $sqlSelect['albumID'] ?>" class="form-control" name="albumID" readonly></td> </tr> <?php } ?> <tr><a href="albuns-lista.php"><button name="cancelar" id="cancelar" class="btn btn-danger mb-3 mr-1" type="button"> <i class="fa-solid fa-arrow-left"></i> Voltar</button></a></tr> <tr><button name="update" id="update" class="btn btn-success mb-3" type="submit" value=""><i class="fa-solid fa-arrow-up-from-bracket"></i> Atualizar</button></tr> </form>  
       
      E esse é o resultado do código acima:

       
      E este é o código que uso pra fazer o UPDATE no banco de dados:
      <?php require_once "../db/albuns.php"; if(isset($_POST['update'])){ $trackNumero = $_POST['trackNumero']; $trackTitulo = mysqli_real_escape_string($conecta2, $_POST['trackTitulo']); $trackTraducao = $_POST['trackTraducao']; $trackID = $_POST['trackID']; $albumID = $_POST['albumID']; $sqlUpdate = "UPDATE `faixas` SET `trackTitulo` = '$trackTitulo', `trackNumero` = '$trackNumero', `trackTraducao` = '$trackTraducao' WHERE `albumID` = $albumID AND `trackID` = $trackID"; if($atualizaDados = mysqli_query($conecta2, $sqlUpdate) == true){ var_dump($sqlUpdate); //header("location: ../../albuns.php?update=sucesso"); } else { //header("location: ../../albuns.php?update=erro"); } } ?> Como eu faria para que cada linha fosse atualizada individualmente? Já tentei diversos métodos, mas o resultado continua sendo a atualização apenas do último registro no banco, ignorando o restante das atualizações.
    • Por luiz0o
      Estou fazendo um projeto para faculdade, e tenho um formulário, esse formulário precisa enviar as respostas tanto para um banco de dados, mas também tem que enviar para uma API que envia para meu email, mas não sei como fazer essas duas coisas ao mesmo tempo
    • Por michelramos
      tenho a seguinte view local no mysql:
      select orcamentos.id, orcamentos.id_empresa, 'orcamento' as tipo, orcamentos.data_aprovacao, month(orcamentos.data_aprovacao) as mes, year(orcamentos.data_aprovacao) as ano, sum(itens_orcamentos.quantidade) as quantidade, sum(itens_orcamentos.preco_unidade) as preco_unidade, sum(itens_orcamentos.desconto) as desconto, sum(itens_orcamentos.preco_unidade_desconto) as preco_unidade_desconto, orcamentos.desconto_orcamento as desconto_orcamento, sum(itens_orcamentos.preco_total) as preco_total, (orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from itens_orcamentos where id_orcamento = orcamentos.id)) as total_sem_desconto, ( (orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from itens_orcamentos where id_orcamento = orcamentos.id)) - (((orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from orcamentos where id_orcamento = orcamentos.id))*orcamentos.desconto_orcamento)/100) ) as total_com_desconto from orcamentos inner join itens_orcamentos on orcamentos.id = itens_orcamentos.id_orcamento where orcamentos.id_situacao in (3,5,6) group by orcamentos.id union all select ordens_servico.id, ordens_servico.id_empresa, 'ordem_servico'as tipo, ordens_servico.data_aprovacao, month(ordens_servico.data_aprovacao) as mes, year(ordens_servico.data_aprovacao) as ano, sum(itens_ordem_servico.quantidade) as quantidade, sum(itens_ordem_servico.preco_unidade) as preco_unidade, sum(itens_ordem_servico.desconto) as desconto, sum(itens_ordem_servico.preco_unidade_desconto) as preco_unidade_desconto, ordens_servico.desconto as desconto_ordem_servico, sum(itens_ordem_servico.preco_total) as preco_total, ((select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto')) as total_sem_desconto, ( (select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto') - (((select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto')*ordens_servico.desconto)/100) ) as total_com_desconto from ordens_servico inner join itens_ordem_servico on ordens_servico.id = itens_ordem_servico.id_ordem_servico where itens_ordem_servico.tipo = 'produto' and ordens_servico.id_situacao in(3,5,6) group by ordens_servico.id union all /* select nfe.id, nfe.id_empresa, 'nfe'as tipo, nfe.data_emissao, month(nfe.data_emissao) as mes, year(nfe.data_emissao) as ano, itens_nfe.descricao as nome, itens_nfe.id_item, coalesce(itens_nfe.quantidade_tributavel) as quantidade, coalesce(itens_nfe.valor_unitario_tributavel, 0) as preco_unidade, null, coalesce(itens_nfe.valor_unitario_tributavel, 0) as preco_unidade_desconto, (valor_unitario_tributavel*quantidade_tributavel) as preco_total from nfe inner join itens_nfe on nfe.id = itens_nfe.id_nfe where itens_nfe.tipo_item = 'produto' and nfe.id_situacao = 3 and nfe.incluir_no_faturamento = 's' */ select nfe.id, nfe.id_empresa, 'nfe'as tipo, nfe.data_emissao, month(nfe.data_emissao) as mes, year(nfe.data_emissao) as ano, null, (nfe.valor_total-nfe.valor_frete) as preco_unidade, null, (nfe.valor_total-nfe.valor_frete) as preco_unidade_desconto, null, (nfe.valor_total-nfe.valor_frete) as preco_total, (nfe.valor_total-nfe.valor_frete) as total_sem_desconto, (nfe.valor_total-nfe.valor_frete) as total_com_desconto from nfe where nfe.id_situacao = 3 and nfe.incluir_no_faturamento = 's' group by nfe.id union all select nfse.id, nfse.id_empresa, 'nfse'as tipo, nfse.data_emissao, month(nfse.data_emissao) as mes, year(nfse.data_emissao) as ano, null as quantidade, (nfse.valor_servicos-nfse.valor_deducoes) as preco_unidade, null, (nfse.valor_servicos-nfse.valor_deducoes) as preco_unidade_desconto, (nfse.valor_servicos-nfse.valor_deducoes) as preco_total, null, (nfse.valor_servicos-nfse.valor_deducoes) as total_sem_desconto, (nfse.valor_servicos-nfse.valor_deducoes) as total_com_desconto from nfse where nfse.id_situacao = 3 and nfse.incluir_no_faturamento = 's' group by nfse.id  
      que, quando coloco no banco online fica da seguinte forma:
      SELECT `orcamentos`.`id` AS `id`, `orcamentos`.`id_empresa` AS `id_empresa`, 'orcamento' AS `tipo`, `orcamentos`.`data_aprovacao` AS `data_aprovacao`, MONTH ( `orcamentos`.`data_aprovacao` ) AS `mes`, YEAR ( `orcamentos`.`data_aprovacao` ) AS `ano`, sum( `itens_orcamentos`.`quantidade` ) AS `quantidade`, sum( `itens_orcamentos`.`preco_unidade` ) AS `preco_unidade`, sum( `itens_orcamentos`.`desconto` ) AS `desconto`, sum( `itens_orcamentos`.`preco_unidade_desconto` ) AS `preco_unidade_desconto`, `orcamentos`.`desconto_orcamento` AS `desconto_orcamento`, sum( `itens_orcamentos`.`preco_total` ) AS `preco_total`, `orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `itens_orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) AS `total_sem_desconto`, `orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `itens_orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) - ( `orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) ) * `orcamentos`.`desconto_orcamento` / 100 AS `total_com_desconto` FROM ( `orcamentos` JOIN `itens_orcamentos` ON ( `orcamentos`.`id` = `itens_orcamentos`.`id_orcamento` ) ) WHERE `orcamentos`.`id_situacao` IN ( 3, 5, 6 ) GROUP BY `orcamentos`.`id` UNION ALL SELECT `ordens_servico`.`id` AS `id`, `ordens_servico`.`id_empresa` AS `id_empresa`, 'ordem_servico' AS `tipo`, `ordens_servico`.`data_aprovacao` AS `data_aprovacao`, MONTH ( `ordens_servico`.`data_aprovacao` ) AS `mes`, YEAR ( `ordens_servico`.`data_aprovacao` ) AS `ano`, sum( `itens_ordem_servico`.`quantidade` ) AS `quantidade`, sum( `itens_ordem_servico`.`preco_unidade` ) AS `preco_unidade`, sum( `itens_ordem_servico`.`desconto` ) AS `desconto`, sum( `itens_ordem_servico`.`preco_unidade_desconto` ) AS `preco_unidade_desconto`, `ordens_servico`.`desconto` AS `desconto_ordem_servico`, sum( `itens_ordem_servico`.`preco_total` ) AS `preco_total`, ( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) AS `total_sem_desconto`, ( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) - ( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) * `ordens_servico`.`desconto` / 100 AS `total_com_desconto` FROM ( `ordens_servico` JOIN `itens_ordem_servico` ON ( `ordens_servico`.`id` = `itens_ordem_servico`.`id_ordem_servico` ) ) WHERE `itens_ordem_servico`.`tipo` = 'produto' AND `ordens_servico`.`id_situacao` IN ( 3, 5, 6 ) GROUP BY `ordens_servico`.`id` UNION ALL SELECT `nfe`.`id` AS `id`, `nfe`.`id_empresa` AS `id_empresa`, 'nfe' AS `tipo`, `nfe`.`data_emissao` AS `data_emissao`, MONTH ( `nfe`.`data_emissao` ) AS `mes`, YEAR ( `nfe`.`data_emissao` ) AS `ano`, NULL AS `NULL`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_unidade`, NULL AS `NULL`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_unidade_desconto`, NULL AS `NULL`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_total`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `total_sem_desconto`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `total_com_desconto` FROM `nfe` WHERE `nfe`.`id_situacao` = 3 AND `nfe`.`incluir_no_faturamento` = 's' GROUP BY `nfe`.`id` UNION ALL SELECT `nfse`.`id` AS `id`, `nfse`.`id_empresa` AS `id_empresa`, 'nfse' AS `tipo`, `nfse`.`data_emissao` AS `data_emissao`, MONTH ( `nfse`.`data_emissao` ) AS `mes`, YEAR ( `nfse`.`data_emissao` ) AS `ano`, NULL AS `quantidade`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_unidade`, NULL AS `NULL`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_unidade_desconto`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_total`, NULL AS `NULL`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `total_sem_desconto`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `total_com_desconto` FROM `nfse` WHERE `nfse`.`id_situacao` = 3 AND `nfse`.`incluir_no_faturamento` = 's' GROUP BY `nfse`.`id`  
      Não sei se a diferença tem haver com o problema, que é o seguinte:
      - ao puxar um registro x no banco local, o resultado retornado é o seguinte: 
      - id | id_empresa | tipo | data_aprovacao | mes | ano | quantidade | preco_unidade | desconto | preco_unidade_descont | desconto_orcamento | preco_total | total_sem_desconto - 181 1 orcamento 2022-10-04 00:00:00 10 2022 67,00 319,05 0,00 319,05 5,00 1350,90 1350,90 1283,355000 - ao puxar o mesmo registro no banco online, o resultado retornado é: - 181 1 orcamento 2022-10-04 00:00:00 10 2022 67,00 319,05 0,00 319,05 5,00 1350,90 1350,90 1318,649994 a ultima coluna está apresentando uma discrepência de mais ou menos 35 e não consegui encontrar nada a respeito
       
      obs: ambos os bancos são idênticos, os dados são idênticos.
    • Por Carlos Antoliv
      Senhores, bom dia.
       
      tenho um campo status. Então, a ideia é mudar o status. Consigo alterar o status quando necessário. Daí, pensei em todas vez que alterar, salvar o id do usuário, data, hora, o último status alterado...
      consigo fazer isso com INSERT, depois do UPDATE.
       
      Nao uso trigger. Até tentei fazer, mas não saiu como eu queria.
       
      Então, para os maiores entendedores do assunto, a melhor prática seria a TRIGGER ou INSERT ? Melhor prática ou o que mais funciona na prática ?
       
      Alguém poderia dissertar sobre isso ?
      Vlw..abço
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.