Ir para conteúdo
Fórum Script Brasil

fulvio

Moderadores
  • Total de itens

    1.218
  • Registro em

  • Última visita

Tudo que fulvio postou

  1. fulvio

    Exibir o ID da linha

    O mais interessante seria um Job mesmo. Eleja uma tabela que deseja migrar. Faça um Job migrando primeiramente as filhas e depois a mãe. Para agilizar o processo, poderá desativar as constraints antes de realizar as gravações. Após o término, ativá-las (coloque o processo em uma transação). Faça os testes com algumas milhares. Pegue a tabela com a maior quantidade de registros. Se o tempo for bom, poderá acrescentar mais tabelas no Job.
  2. fulvio

    Exibir o ID da linha

    Bom dia Caio, Não entendi ao certo o problema. você queria retornar os registros na cronologia em que foram inseridos?
  3. Boa tarde NIK, Realmente eu entendi errado. Desculpe. Para fazer esta criação / migração, seria melhor você utilizar o Wizard do sql. você vai primeiramente deletar a tabela Cliente da Base Teste. No Wizard, selecionar a tabela Cliente da Base Oficial e copia-la para a Base Teste. Selecionar a opção de criar automaticamente a tabela na base de destino. O sql vai criar a tabela e migrar os dados. Outra alternativa: no Management clique com o botão direito do mouse em cima do nome da tabela, escolha "Script Table as" / "Create To" / "New Query Editor Window". Aparecerá o script para criar a tabela com todos os seus campos. Delete a tabela na Base de Teste e crie-a novamente utilizando o script. Aí pra gravar os dados, pode usar o script q te passei logo acima, mas pegando todos os campos. Espero ter ajudado agora!!! :.)
  4. Boa tarde Omega, O código 0201010046 e C211 estão na mesma COLUNA?
  5. Segue exemplo de script: -- cria temporária CREATE TABLE #Temporaria (codigo int, nomecliente VARCHAR(60), endereco VARCHAR(100)) -- acesse a base Oficial USE baseoficial -- insere na temporária INSERT INTO #Temporaria SELECT codigo, nomecliente, endereco FROM Cliente -- acesse a base Teste USE baseteste -- insere na tabela cliente os códigos que ainda não existem. INSERT INTO Cliente SELECT * FROM #Temporaria WHERE codigo NOT IN (SELECT codigo FROM Cliente)
  6. fulvio

    SQL Server C#

    Bom dia Angelo, No fórum há alguns posts sobre isto. No Seven tem este problema quando se instala alguns aplicativos específicos.
  7. Bom dia NIK, Com as duas bases no mesmo servidor, fica mais fácil de trabalhar... Você pode fazer uma transferência dos dados utilizando o Wizard do Sql. Ao invés de copiar a tabela toda, abra a opção de execução de script e faça o script de cópia. Outra alternativa, e para mim a mais simples e rápida: Como está no mesmo servidor, poderá alterar as bases em uma mesma janela utilizando o USE. - você cria uma temporária para transporte. - Vá até a base de produção utilizando o comando "USE baseoficial". - Dê o select e copie os dados para a tabela de transporte. - Utilize o comando "USE baseteste". - Insira os dados na tabela Cliente utilizando os dados gravados na tabela de transporte.
  8. Bom dia Fernandinha, O campo Identity é "setável". Você pode colocar o número que quiser de início. No exemplo abaixo, a numeração comecará em 100. DBCC CheckIdent('Tabela1',Reseed,100) Para o segundo problema: Exemplo de como criar a coluna: ALTER tabela NomeTabela ADD NomeCOluna INT Para executar uma função, terá que criar uma Trigger. Toda vez que inserir uma linha nova na tabela, a trigger será disparada.
  9. Bom dia Maeda, Não entendi bem o seu problema. Se der para colocar um exemplo.... :.)
  10. fulvio

    Select Avançada

    Bom dia Eric, Possível de se fazer em sql sim.... mas seria mais aconselhável montar os dados na ferramenta que utiliza para desenvolver. - Você faria um "select distinct" para pegar apenas os dias de trabalho. - Colocaria os dias em colunas. - Depois faria um "select distinct" para pegar os códigos dos funcionários. - Colocaria os funcionários em linhas. - Faria um select para pegar as datas de trabalho e funcionários, colocando o X correspondentes. Já fiz uma implementação parecida em VB6, utilizando Text Grid (bem semalhante ao excel).
  11. Bom dia Alexandre, A sua replicação está sendo realizada pelo Replication do sql, ou está fazendo uma replicação de outra forma (como por exemplo um linked server)? Se tiver utilizando o Replication, creio que não conseguirá fazer isto. você teria que colocar o destino como "Publicador", e assim não funcionaria.... Uma alternativa é criar uma tabela de expurgo. De 3 em 3 meses o sql copiaria estes dados para a tabela de expurgo (antes de deletar da tabela principal), deixando até 2 anos (igual deseja). Aí utilizaria a replicação em cima desta tabela de expurgo. Como a tabela de expurgo seria apenas para replicação, o seu gasto será apenas com armazanamento destes dados. O mesmo seria fixo, uma vez que teriam dados de até 2 anos.
  12. fulvio

    Ajuda com agrupamento

    Bom dia Tchello, você poderá utilizar um CASE para agrupar as duas descrições. Coloquei um exemplo logo abaixo utilizando uma temporária: CREATE TABLE #Teste (Tipo INT, Descricao VARCHAR(50)) INSERT INTO #Teste VALUES(1, 'Casa') INSERT INTO #Teste VALUES(2, 'Apartamento') INSERT INTO #Teste VALUES(3, 'Loja') INSERT INTO #Teste VALUES(4, 'Conjunto Comercial') INSERT INTO #Teste VALUES(5, 'Terreno') SELECT DISTINCT case descricao WHEN 'Conjunto Comercial' THEN 'Comercial' WHEN 'Loja' THEN 'Comercial' ELSE descricao END FROM #Teste
  13. Bom dia Levi, O melhor caminho entre os relacionamentos das tabelas serão pelas suas chaves e/ou índices. O Management faz este relacionamento para você (no console gráfico), mas terá que selecionar as tabelas que deseja. O Tunning faz uma analise e identifica o que pode ser feito para melhorar a performance. Mas para utilizar esta ferramenta, você já deverá ter o script. Particularmente prefiro fazer a mão e se a performance não for satisfatória, utilizar o Tunning.
  14. Boa tarde Samuel, Seja bem vindo ao Forum!!! :.) Você pode utilizar um CASE para contar os dígitos do CPF. Caso tenha 13 dígitos, acrescentar o zero a esquerda: DECLARE @Cpf VARCHAR(14) SET @Cpf = '33.333.333-33' SELECT case len(@Cpf) WHEN 13 THEN '0' + @Cpf else @Cpf END você pode alterar a estrura do select e acrescentar o CASE diretamente no seu select. Assim todos os CPF´s sairão formatados.
  15. fulvio

    Violation of UNIQUE KEY

    Boa tarde NIK, Ativar e desativar: ALTER TABLE XXXXX NOCHECK CONSTRAINT ALL ALTER TABLE XXXXX CHECK CONSTRAINT ALL O problema de deixar as constraints desativadas é não ter integridade na sua base. Elas ativas, o sql garante esta integridade. Se tirar as constraints, caberá a vc "administrar" a integridade.
  16. Boa tarde Sqlzim, Terá que ser um delete para cada tabela.
  17. fulvio

    Violation of UNIQUE KEY

    Bom dia NIK, Tem como desativar sim as constraints... mas tem um problema: - você desativa as constraints e insere os dados. - Quando for ativar dará erro, pois será verificada as consistências. - Você não conseguirá ativar as constraints até corrigir os registros que estão sem consistência. - OBS.: tem como ativar as constraints sem fazer a verificação dos registros já inseridos, basta utilizar o NOCHECK. Mas aconselho a não mexer com isso, apenas em raras exceções. Quando pesquisa na tabela, não encontra o item na tabela e mesmo assim dá erro de chave. Este problema é bem interessante, pois as vezes é muito dificil de detectar. Na tabela não vai ter realmente o item. Então por que dá erro de chave? O item está DUPLICADO nos dados que estão sendo inderidos. Pesquise duplicidades nos dados que estão sendo inseridos. :.)
  18. É por isso que o update não está alterando nada. Se no select não listar registros, o update não irá alterar nada. O seu select está incorreto, ou realmente não existem registros a serem alterados. Em relação a cor, se estiver em algum aplicativo de edição (ou até mesmo na parte gráfica do sql) as palavras reservadas, funções nativas, cláusulas, etc aparecerão de cores diferentes. Não se preocupe quanto a isto.
  19. Se não alterou nada, quer dizer que seu script está correto, mas os filtros não estão "achando" nenhum registro para alterar. Para conferir, você pode pegar a estrutura do "update" como está e alterar para "select". Aí você poderá conferir o que lista como resultado. Ficará assim: SELECT * FROM Empresas Empresas INNER JOIN Locais Locais ON ( (Empresas.EMP_CdiEmpresa = Locais.LOC_CdiEmpresa) ) INNER JOIN Folhas Folhas ON ( (Locais.LOC_CdiLocal = Folhas.FOL_CdiLocal) ) INNER JOIN Contratados Contratados ON ( (Folhas.FOL_CdiFolha = Contratados.CON_CdiFolha) ) WHERE ( Empresas.EMP_OplDesativada IS NOT NULL ) AND ( Contratados.CON_CdiSituacao IN (1,3,5,6,7,9) )
  20. Boa tarde Wanderley, Qual o erro q está ocorrendo? Poderá fazer desta forma também: UPDATE Contratados Set Contratados.CON_CdiSituacao = 2 FROM Empresas, Locais, Folhas, Contratados WHERE Empresas.EMP_CdiEmpresa = Locais.LOC_CdiEmpresa AND Locais.LOC_CdiLocal = Folhas.FOL_CdiLocal AND Folhas.FOL_CdiFolha = Contratados.CON_CdiFolha AND Empresas.EMP_OplDesativada IS NOT NULL
  21. Boa tarde Rodrigo, Este script não é T-SQL... vou mover o tópico. :.)
  22. fulvio

    Violation of UNIQUE KEY

    Boa tarde NIK, A constraint se chama TXPRDCOD, e não a coluna. Quando é criada uma constraint, você pode colocar o nome que quiser. Identifique-a na estrutura e olhe em qual coluna a constraint está referenciando. :.)
  23. De nada.... precisando estamos ai!!! :.)
  24. Bom dia Denis, Não tem como colocar o NOLOCK como default no Banco. :.(
  25. Boa tarde, No seu string há 8 ocorrências do 160. Alguns você não colocou em negrito. Segue script. Se não entender pode postar. Seleciona tudo e roda: DECLARE @String VARCHAR(1000) DECLARE @Contador INT SET @Contador = 0 SET @String = '0x1600006CA87A000000E000000000000016000092A1C8000000E0000000000000160000DB786B000000E00000000000001600001F4282000000E0000000000000160000945A3D000000E00000000000001600009BDE0C000000E 000000000000016000028479F000000E00000000000001600001404E6000000E0000000000000' while (SELECT CHARINDEX('160', @String)) > 0 BEGIN SET @Contador = @Contador + 1 SET @String = (SELECT RIGHT (@String, LEN(@String) - (CHARINDEX('160', @String))-2)) END SELECT @Contador
×
×
  • Criar Novo...