Fazendo um insert com um select
Pessoal, Deixando aqui uma anotação básica que sempre usamos na migração de dados …
1 2 3 4 5 |
INSERT INTO TABELA (CAMPO1 ,CAMPO2 ,CAMPO3) select CAMPO1,CAMPO2,CAMPO3 from TABELA2 |
Desabilitar o Identity de uma tabela para fazer Insert
Existem algumas situações que você quer migrar os dados de uma tabela, porém deseja manter o ID original dos registros. Se o campo da nova tabela for IDENTITY você só vai conseguir isto se desabilitar o mesmo. Você deve desabilitar, fazer o Insert e habilitar novamente.
1 2 3 4 5 6 7 |
-- Desabilitando o identity SET IDENTITY_INSERT ON GO -- Habilita do identity SET IDENTITY_INSERT OFF GO |
Exemplo prático disso:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/* FAZ A MIGRAÇÃO DOS AUTORES */ -- Desabilitando o identity SET IDENTITY_INSERT dbo.tb_autor ON GO INSERT INTO [dbo].[TB_AUTOR] ([cd_autor], [tx_nome] ,[tx_foto] ,[tx_sobre] ,[tx_url_site]) SELECT codigo_autor,UPPER(nome_autor), Imagem_autor,sobre_autor,link_pagina FROM dbo.autores GO -- Habilita do identity SET IDENTITY_INSERT dbo.tb_autor OFF GO |
Desabilitando relacionamento entre tabelas para fazer insert
As vezes em migração de dados queremos fazer INSERT em tabelas que estão com relacionamentos com outras tabelas e no momento do INSERT ainda não temos todas as tabelas preenchidas. Um comando que ajuda bastante é o que está abaixo. Ele desabilita os relacionamentos e você consegui fazer o INSERT sem problemas. Mas depois lembre-se […]
Como fazer um UPDATE com um Select
Pessoal, Para fazer um UPDATE com um SELECT é mais simples que pensamos. Abaixo coloco um exemplo teórico.
1 2 3 4 5 6 7 8 9 10 11 |
UPDATE Table SET Table.col1 = other_table.col1, Table.col2 = other_table.col2 FROM Table INNER JOIN other_table ON Table.id = other_table.id |
Agora um exmplo prático … Queria fazer um update na tabela de tb_livros com o código do formato correlacionado a tabela tb_formato a partir de um campo temporário contendo o formato.
1 2 3 4 5 6 7 8 9 |
UPDATE TB_LIVRO SET TB_LIVRO.cd_formato = TB_FORMATO.cd_formato FROM TB_LIVRO INNER JOIN TB_FORMATO ON TB_FORMATO.tx_formato = TB_LIVRO.tx_formato_temp |
[…]
Limpar Log de Banco no SQL Server (Arquivo .LDF)
Pessoal, Muitas vezes o disco do servidor do banco de dados acaba o espaço porque não é feita uma manutenção nos arquivos de log dos bancos SQL. Com o comando abaixo conseguimos limpar os logs (arquivos .ldf). Mas cuidado! Isto APAGA todo o log. Se você precisa do log por algum motivo faça um BKP […]
Matar Conexões de uma Base SQL Server
Pessoal, Quem nunca teve o terrível desprazer de fazer um restore em uma base SQL Server e receber o erro que não foi possível fazer porque o banco de dados estava em uso. Ai você pede para todo mundo fechar as conexões e recebe o mesmo erro. Bom, pesquisei na Internet e achei este script […]
Filestream feature is disabled
Pessoal, Quando vocês estiverem restaurando uma base de dados em um SQL Server 2008 e aparecer o erro “Filestream feature is disabled”, é simples resolver. Abra o SQL Server Configuration Manager. Clique em SQL Server Services na janela da esquerda Na janela da direita, clique com o botão direito do mouse em SQL Server e […]
SQL Server Express 2008 R2
Pessoal, Fica ai uma dica para quem pegou uma máquina virtual Windows 2008 com SQL Server Express 2008 R2 no cloud da Amazon. Antes de abrir o Management Studio você deve ir nos serviços do servidor e inicializar tudo que for serviço do SQL Server. Por padrão as máquinas da Amazon vem com estes serviços […]
Erro ao salvar a alteração de uma tabela
Para quem está começando a trabalhar com o SQL Server 2008 vai ai uma dica. Por default ele vem com uma configuração que não permite fazer alterações em tabelas já criadas. Seja tentando mudar pelo diagrama ou pelo design table. O aviso que aparece é “Saving changes is not permitted. The changes you have […]