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

    Consulta ERRO

    Bom dia, Creio que não haja necessidade de criar um subselect. Você poderá referenciar a tabela PESSOA duas vezes: uma para recuperar o aluno e outra referência para recuperar os outros dados. Ex.: SELECT Pes.Nome NomeAluno, Pais.Nome NomePai, ..., from Pessoa Pes, Pessoa Pais, Aluno a where...
  2. Bom dia André, As suas FK´s estão referenciando campos que possuem tipos diferentes. Ex.: CONSTRAINT CLIENTE_EMPRESA_FK FOREIGN KEY (COD_EMP) REFERENCES EMPRESA(NOME_EMP) O campo COD_EMP é inteiro, e o campo NOME_EMP é varchar.
  3. É trabalho de escola / faculdade?
  4. Boa tarde Diego, Segue os scripts: -- Identificação dos índices na sua base SELECT * FROM sysindexes s -- Identificação das tabelas em sua base SELECT * FROM sysobjects WHERE xtype='U' -- Retorno do espaço utilizado pela tabela EXEC sp_spaceused 'Pessoa_Fisica' Com estes scripts, você conseguirá montar o que deseja.
  5. Boa tarde Rodrigo, Vamos lá, dando exemplos... rs: - 5 módulos, utilizando bkp as 12:00 e as 20:00 horas. --> você terá que ter um log de no máximo X GB, para conseguir gravar mais ou menos 8 horas de processos na base. Dúvidas: Por que mais ou menos 8 horas de processos na base, sendo que de 20 às 12 hs dão mais de 8 hs? Bem provável que a empresa não seja 24 hs. De madrugada, praticamente não haverá processamentos realizados por usuários (somente se houver Jobs agendados). Por que no máximo de X GB e não mínimo? Porque o bkp executa e realiza uma cópia de segunrança dos dados. Sendo assim, não precisará mais do arquivo de log. Se o arquivo de log chegar ao máximo? O sql comecará a sobrepor os dados mais antigos. Se eu precisar do log? Apenas precisará dele para rastreabilidade de processos. Os dados são armazenados no bkp. - 12 módulos, utilizando bkp as 12:00 e as 20:00 horas. --> você terá que ter um log de no máximo Y GB, para conseguir gravar mais ou menos 8 horas de processos na base. Dúvidas: Estes X ou Y GB é proporcional aos módulos do sistema? Não. Ele está diretamente relacionado a quantidade de processos na base. você pode ter apenas 1 módulo que tenha milhões de processos. Eu tenho que ficar mexendo no tamanho do log? Sim, desde que o seu tamanho passe a ficar insuficiente para gravação dos processos, até que o bkp seja realizado. Tenho que fazer o bkp dos logs? Não. O bkp contém todos os dados da base. Se precisar de voltar alguns dados? Quem fará este papel será o bkp, e não o log. Se tiver alguma dúvida, pode postar.
  6. Boa tarde Nelinhor, Não entendi ao certo o problema....
  7. fulvio

    Erro no script

    Bom dia NIK, Para salvar da forma que quer, você terá que concatenar os valores, dando o insert em apenas 1 coluna. Quando faz: INSERT INTO TABELA VALUES (@CODCOLIGADA, @CODCLIENTE,@NUMEROMOV,@LOTE,@DATA,@DATA1,@ID,@PRODUTO) O sql entende que a separação das variáveis por vírgula, é a inserção do dado em cada coluna da tabela. Para ficar tudo em uma linha: a tabela "TABELA" deve conter apenas 1 coluna. Os dados serão concatenados e inseridos nesta coluna: INSERT INTO TABELA (Coluna) VALUES (@CODCOLIGADA + ',' + @CODCLIENTE + ....) Se alguma variável for do tipo INT, o sinal + tentará somar e não concatenar. Desta forma, terá que fazer a conversão do dado: INSERT INTO TABELA (Coluna) VALUES (cast(@CODCOLIGADA AS VARCHAR())+ ',' + @CODCLIENTE + ....))
  8. Bom dia Rodrigo, Seja bem vindo ao Fórum!!! você pode parametrizar o tamanho do Log na sua base. Se truncar e começar do zero, o log irá crescer e voltar ao tamanho que está, se não configurar o seu tamanho.... Vou tentar explicar suas dúvidas: Explicando a grosso modo, o log armazena todos os processos que são executados na base. Não podemos confundir os processos executados com os dados manipulados. O bkp você realiza uma cópia dos dados da sua base (e/ou estrutura dependendo do bkp). O log não armazena os dados manipulados, mas como o dado foi manipulado. Vou dar um exeplo: - Se um dado for deletado da base, se não tiver bkp, ele será perdido. Com o log, você conseguirá identificar qual o comando, como foi executado, quando e quem realizou a execução. Desta forma terá a rastreabilidade e identificação do "problema". Se não tiver bkp, o log não irá te "socorrer" no quesito dado perdido. Você tem a opção de desabilitar o log. Tem muita gente que pensa que ele não ocupará mais espaço.... mas o sql utiliza o log para suas próprias transações. Quando você possui uma transação em aberto, o sql utiliza o log caso necessite realizar, por exemplo, um rollback. Resumindo: o interessante seria fazer uma análise entre tempo de bkp e log. Se realiza o bkp de 12 em 12 horas, o interessante seria um log que armazenasse 12 horas de transações. O cálculo é simples, mas sua administração é um pouco mais complexa, pois processos, usuários, etc tendem sempre a aumentar. Espero ter ajudado.
  9. Bom dia Willian, você terá que utilizar o DATEDIFF mesmo e fazer os cálculos / agrupamento. No sql não há nenhum função que retorne estes valores já prontos.
  10. De nada... :) Precisando estamos ai.
  11. Bom dia NIK, Segue exemplo: :) create TABLE #Tabela (Id INT, Dado VARCHAR(2)) INSERT INTO #Tabela VALUES (1,'AA') INSERT INTO #Tabela VALUES (2,'BB') INSERT INTO #Tabela VALUES (3,'CC') DECLARE @String VARCHAR(20) DECLARE @Fim INT SET @Fim = 1 SET @String = '' WHILE (SELECT COUNT(*)FROM #Tabela) >= @Fim BEGIN SET @String = @String + (SELECT Dado FROM #Tabela WHERE id=@Fim) SET @Fim = @Fim + 1 END select @String OBS.: no caso do campo Id, pode-se criar um identity para facilitar o controle.
  12. você terá que pegar o resultado e gravar em uma temporária. Depois ir pegando os dados e concatenando (com o loop). você poderá criar um cursor para ir lendo a tabela temporária, ou criar uma coluna para controle (que acho melhor). Se tiver alguma dúvida, pode postar... :)
  13. fulvio

    Preciso de um Help

    Boa tarde Jeffy, O subselect está retornando 2 valores, por isso que está retornando erro.
  14. fulvio

    Limitar campo Numeric

    Boa tarde Pri, Declare como decimal.
  15. Então seria com um loop mesmo... Segue exemplo: DECLARE @String VARCHAR(20) DECLARE @Valor VARCHAR(1) DECLARE @Fim int SET @Valor = 'A' SET @Fim = 1 SET @String = @Valor WHILE @Fim <= 5 BEGIN SET @String = @String + @Valor SET @Fim = @Fim + 1 END select @String
  16. Bom dia NIK, Para fazer desta forma, terá que concatenar todos os dados. você poderá fazer um loop para concatenar, ou então passar o resultado para o aplicativo e implementar lá (o mais recomendado).
  17. Boa tarde Vinicius, Apenas para constar: este erro ocorre quando o sub-select retorna mais de um valor como resultado. Quando ocorrer, tente executar o sub-select separadamente, tratando-o para que retorne apenas um valor. :)
  18. fulvio

    Order by

    Foi mau Pedro... pensei que antes do ponto seria a chave, e não um valor... rs. Converte então pra decimal com 2 casas.
  19. fulvio

    Order by

    Bom dia Pedro, Se todos os itens estiverem neste formato, você poderá converter para inteiro e depois pedir pra ordernar. O problema será se algum item for caracter...
  20. fulvio

    Dúvida sobre Select

    Bom dia Mendofh, Neste caso, você pode fazer um subselect para resgatar esta informação, utilizando o campo VELOMAX como relacionamento. Se este não for o relacionamento, tente encontrar uma chave de retorno que consiga identificar a data correta que deseja. Fiz um exemplo para tentar adaptar: select CON.codcon, VRA.codmot, MAX(veloci) as VELOMAX, MOT.NOMMOT, (SELECT r.DATHOR FROM rodvra r WHERE r.??? = veloci) AS DATA from rodcon CON left join rodvra VRA on VRA.CODDOC = CON.CODCON and VRA.SERDOC = CON.SERCON and VRA.FILDOC = CON.CODFIL left join rodmot MOT on VRA.codmot = MOT.codmot where placa like '1%' and CON.situac = 'E' and VRA.DATHOR > '2012-09-12 12:00' group by CON.codcon, VRA.codmot, MOT.nommot
  21. Bom dia Wesley, Algumas exportações (principalmente de datas) são bem problemáticas por causa de seus vários formatos. Uma alternativa adotada é exatamente realizar a conversão para varchar (igual fez), conseguindo fazer assim a exportação dos dados. Mas isso tem um problema: o banco não pode ficar no formato varchar.... justamente por causa da consultas que terá que fazer. A solução será alterar o tipo do campo de varchar para datetime. Para isto terá que deixar todos os dados certinhos, e depois alterar a estrutura da tabela.
  22. fulvio

    Soma por datas

    Bom dia Mateus, você poderá utilizar o BETWEEN do sql para pesquisar os intervalos de datas que precisa.
  23. fulvio

    Linhas Duplicadas

    Bom dia Fernandinha, O sql está duplicando a linha porque são duas inserções do ID=1 na tabela. Como os dados de telefone são diferentes, mesmo com o distinct o sql não trará uma linha. O que se pode fazer é optar para um dos telefones, caso exista mais de 1 inserção para o ID.
  24. Bom dia Israel, Verifique as configurações de protocolos (Surface Area) do sql.
  25. fulvio

    Erro SQL 2008

    Dê uma olhada nas conexões utilizadas pelo sql (configurações dos protocolos). Abra as configurações das duas máquinas e verifique. As vezes o problema está na configuração do sql em si, e não no sistema operacional.
×
×
  • Criar Novo...