
fulvio
Moderadores-
Total de itens
1.218 -
Registro em
-
Última visita
Tudo que fulvio postou
-
(Resolvido) Consulta em grupo de servidores remotos
pergunta respondeu ao BrunoC de fulvio em SQL Server
Boa tarde Bruno, Que bom q conseguiu resolver!! Fico feliz. De nada. Precisando estamos ai! :) -
Boa tarde Pedro, Seja bem vindo ao Forum!! Se todos os sms´s chegarem neste formato, você poderá utilizar a função SUBSTRING do sql. Com ele conseguirá realizar o insert que precisa.
-
(Resolvido) Consulta em grupo de servidores remotos
pergunta respondeu ao BrunoC de fulvio em SQL Server
Boa tarde BrunoC, Seja bem vindo ao Forum!! Vamos ver se entedi o problema: você gostaria de fazer um script em que consiga, em apenas 1 conexão com o banco X (utilizando SAP), acessar os outros bancos de dados em outros servidores. Se for isso, terá que fazer um linked server entre os bancos de dados. você poderá permissionar usuários e tabelas que poderão ser acessadas. Com o linked server, você conseguirá fazer uma conexão com o banco X e resgatar dados de outras bases de dados, em outros servidores. Outra alternativa será implementar um serviço (web service) para isto. Mas a arquitetura será bem diferente... Dê uma olhada nas duas alternativas! Espero ter ajudado. -
Boa tarde pjava, Se já tem o script delas, poderá executar direto no Management, tudo de uma vez... Mas como são poucas, vai executando e conferindo o trabalho, pra não ter erros.
-
Boa tarde Marloncos, Ficamos felizes pelos elogios ao Forum!! :) Fazer a mão é suicídio!!!! rs... Segue um exemplo de como você poderá fazer as alterações. Não há a necessidade de insert, apenas update. Fiz um exemplo para entender como poderá implementar. Ai você adapta as regras de acordo com a sua necessidade. Vi q o número 9 também tem q entrar no começo dos números de celulares. Fiz este filtro também. Se não entender, posta ai... -- criar temporária CREATE TABLE #Tabela (Col1 VARCHAR(15),Col2 VARCHAR(15), Col3 VARCHAR(15)) -- inserir os dados insert into #Tabela values('6244','1141192100','145') insert into #Tabela values('5212','1184592810','340') insert into #Tabela values('5692','1192345814','311') insert into #Tabela values('7924','1368274623','390') -- verificar SELECT * FROM #Tabela -- select de como vai ficar SELECT case WHEN left(col2,2)=11 and substring(col2,3,1) IN (8,9) THEN substring(col2, 1, 2) + '9' + substring(col2, 3, 12) ELSE col2 end Telefone FROM #Tabela -- alterar os dados UPDATE #Tabela SET col2=(substring(col2, 1, 2) + '9' + substring(col2, 3, 12)) WHERE left(col2,2)=11 and substring(col2,3,1) IN (8,9) -- verificar SELECT * FROM #Tabela
-
Boa tarde Gui, Dá uma pesquisa sobre Integration Services (publicador e assinante). Com ele você poderá implementar esta "idéia". Dê uma estudada boa. Vale a pena. Caso não consiga entender ou tiver alguma dúvida, pode postar aqui!! Outra alternativa seria colocar um nobreak na matriz, com um link de reserva. O ruim que pagará 2 links.... 1 apenas para segurança.
-
Bom dia Alberto, O CASE está dando erro porque se o RESTO for igual a 1, você tenta colocar um caracter. Mas caso ela seja diferente de 1, você colocará o valor contido na coluna RESTO, q é um inteiro. Segue a alteração do script para retorno do DV=P. Olhe se assim funciona: ALTER FUNCTION [dbo].[Modulo11Base7](@VALOR varchar(60)) RETURNS CHAR(1) AS BEGIN DECLARE @SOMA INT, @CONTADOR INT, @PESO INT, @DIGITO INT, @RETORNO CHAR(1), @BASE INT, @RESTO BIT SET @SOMA = 0 SET @PESO = 2 SET @BASE = 7 SET @RESTO = 0 SET @CONTADOR = Len(@VALOR) LOOP: BEGIN SET @SOMA = @SOMA + (Convert(int, SubString(@VALOR, @CONTADOR, 1)) * @PESO) IF (@PESO < @BASE) SET @PESO = @PESO + 1 ELSE SET @PESO = 2 SET @CONTADOR = @CONTADOR-1 END IF @CONTADOR >= 1 GOTO LOOP IF (@RESTO = 1) BEGIN SET @RETORNO = (@SOMA % 11) END ELSE BEGIN SET @DIGITO = 11 - (@SOMA % 11) IF (@DIGITO NOT IN (9, 10)) SET @RETORNO = @DIGITO IF (@DIGITO = 9) SET @RETORNO = 0 IF (@DIGITO = 10) RETURN 'P' END RETURN @RETORNO END OBS.: alterei o script. Agora está ok.
-
Bom dia Pjava, Se pretende delimitar por vírgula, tente exportar como TXT. Prefiro sempre txt do que outras extensões. Acho que é mais fácil de manipular os dados. Gosto também de utilizar delimitadores menos simples, como | ou TAB. Para que não tenha problemas ao exportar campos que contenham textos.
-
Boa tarde Daniel, Seja bem vindo ao Fórum!! Creio que tenha um post mais antigo com estas informações, mas vamos lá: Quando se cria um Banco no SQL, você pode configurar o tamanho inicial do mesmo. você também terá q identificar como será seu "crescimento": seja especificando os MB ou em %. Este tamanho inicial é independente da quantidade de dados que esteja armazenado.
-
Bom dia Rodrigo, Está correto sua modelagem. Uma dica seria criar uma tabela de preços. Assim conseguiria normalizar a tabela de Registros. Mas dê uma olhada na real necessidade!! Vantagens: - Caso tenha outro serviço / região com o mesmo preço, não haverá a necessidade de "duplicar" valores. - Otimização no armazenamento dos dados. - Criação / alteração de preços.
-
Bom dia Renata, Segue um exemplo de criação de Procedure. Coloquei o pedido como parametro. -- publicar a procedure CREATE PROC dbo.NomeProc (@userpedvendacrm int) AS SELECT @userpedvendacrm -- executar Exec NomeProc 2235
-
Bom dia Carlos, Sempre quando utilizo as funções de soma, gosto de fazer os scripts passo a passo, ao invés de tentar fazer tudo em apenas 1 script. Dei uma olhada por alto em seu script. O que me chamou a atenção é que está querendo utilizar o filtro por Cliente e Data, mas no seu script a ordenação está apenas por Cliente. Caso não seja isso o desejável, poderá ordernar por vencidos e a vender, e após identificar o resultado correto, acrescentar o filtro por data.
-
Bom dia Rafael, Acho que entendi o seu problema. Então ai vai uma pergunta..... rs. - Onde você utilizará os dados de dias que o equipamento ficou com 0:00 hs em manutenção? Por que estou perguntando isto: no seu exemplo, se o script estivesse funcionando, no mês de julho iriam ter 31 linhas de retorno. Uma linha para cada dia. Mas os dias que o equipamento ficou em manutenção foram apenas 2 dias. Então o sql processaria 31 linhas de resultado, para trazer 29 linhas com zero e 2 linhas com resultados que interessa. Se fosse implementar, faria o "trabalho pesado" no código fonte, e deixaria a consulta no Banco apenas retornar os dis que houveram realmente a manutenção. Os outros dias, o próprio código colocaria zero. Para separar as datas por hora (como no intervalo de 13/07 a 15/07), terá que testar se a data de início é igual a data de fim. Se for, irá calcular com as horas, senão, terá que calcular as horas até 23:59 hs + 1 hora. Após o calculo, somar 1 dia na data de inicio e realizar novamente o teste.
-
Bom dia Eduardo, você está utilizando o SQL com o Seven? Tente efetuar a reparação do SQL. Bem provável que o problema esteja relacionado com a instalação. Se não o problema, você encontrará para download na net o SharedManagementObjects. Tente atualizá-lo.
-
Bom dia Eduardo, Creio que este erro não seja seu, e sim do SSMS. O que poderá fazer: - Renomeie a coluna que está com o datatype INT. - Crie uma nova coluna com datatype CHAR, com o nome da antiga. - Carregue os dados para a coluna nova. - Exclua a coluna antiga.
-
Bom dia Alberto, Apenas respondendo aqui no Forum, caso alguém tenha a mesma dúvida (pois já conversamos a respeito deste problema por MSN... :) ). No seu exemplo acima, o sql identifica o resultado T1 como um alias. Ele não identifica como uma variável em que pode ser utilizada. Sendo assim, não tem como utilizar diretamente a T1 para fazer outros cálculos. Desta forma, será necessário concatenar a sintaxe para que o resultado seja satisfatório.
-
Bom dia Fernandinha, você pode refenciar a mesma tabela 2 vezes, fazendo o join entre elas. Ficaria assim: select tab1.Id e tab2.IdPai from TabelaX tab1, TabelaX Tb2 where ....
-
Boa tarde Márcio, O formato do tipo 20101 não é um formato válido para o Sql. O que pode fazer é um CASE para cada mês. Como o formato é padrão (aaaamm), poderá pegar os 4 primeiros digitos como o ano e os 2 ultimos digitos como mês, usando o case para identificar o relacionamento dos números com seus respectivos meses e anos. Conseguindo separar os registros, basta contar a quantidade de linhas de retorno.
-
Boa tarde Arnaldo, Uma idéia seria fazer uma temporária para armazenar todos os POST_ID que deseja pesquisar. É praticamente a mesma coisa que fez, mas com a temporária creio que a implementação fique mais fácil de dar manutenção e de entender.... :)
-
cursor não funciona executando a mesma proc 2 vezes
pergunta respondeu ao Zephyrus de fulvio em SQL Server
Ok, entendido. Desta forma a sua implementação está correta. A única estrutura que pode ser retirada dos 2 IF´s seria a declaração do cursor, seu fechamento e desalocação. O resto ficaria da mesma forma... Não entendi ao certo o motivo da implementação do cursor. Após a criação, você dá um insert / select. você terá que passar em cada linha do cursor para realizar o insert? -
(Resolvido) Duvidas SQL - coluna xtype da tabela SysObjects
pergunta respondeu ao Pizero Infor de fulvio em SQL Server
Bom dia Pizero, Infelizmente não conheço nenhum. Encontrará muito na net mesmo, principalmente em inglês. -
cursor não funciona executando a mesma proc 2 vezes
pergunta respondeu ao Zephyrus de fulvio em SQL Server
Bom dia Zephyrus, Seja bem vindo ao Fórum!! Olhei por alto a sua procedure. O que me chamou a atenção foi a criação da temporária com duas tralhas (##). Qual o significado: # - temporária criada e existente apenas na instância criada. Ela existirá enquanto a instância estiver ativa. ## - temporária criada e existente / ativa nas instâncias. Ela existirá enquanto a instância em que foi criada estiver ativa. Creio que o mais aconselhável seria a utilização de 1 tralha somente. Outra forma de implementação mais comum é o teste da existência da tabela com a função IF EXISTS (ao invés da if object_id). Vi também que o script poderá ser otimizado, excluindo as partes que estão duplicadas. Ficaria: USE [Garma] GO /****** Object: StoredProcedure [dbo].[SPED_Layout_19] Script Date: 07/11/2012 22:19:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Procedure [dbo].[SPED_Layout_19](@Tipo_Arquivo as varchar(255), @Data_Inicial varchar(255), @Data_Final varchar(255) ) as begin if object_id('tempdb.dbo.##TMPLayout19') is not null drop table ##TMPLayout19 create table ##TMPLayout19(linha varchar(MAX)) DECLARE @numnota varchar(10); DECLARE @sequencial int; set @numnota = 0; set @sequencial = 1; DECLARE _cur CURSOR FOR -- NOTAS IF @Tipo_Arquivo = 'E' BEGIN SELECT N.Numnf FROM NFC N WHERE N.Datarec BETWEEN CONVERT(DATETIME,@Data_Inicial,103) AND CONVERT(DATETIME,@Data_Final,103) END IF @Tipo_Arquivo = 'S' BEGIN SELECT N.Nota FROM Notas N WHERE N.Emissao BETWEEN CONVERT(DATETIME,@Data_Inicial,103) AND CONVERT(DATETIME,@Data_Final,103) END OPEN _cur WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM _cur into @numnota insert into ##TMPLayout19(linha) (SELECT GIGANTE QUE FUNCIONA RSRS) set @sequencial += 1; END close _cur; DEALLOCATE _cur; END end -
(Resolvido) Duvidas SQL - coluna xtype da tabela SysObjects
pergunta respondeu ao Pizero Infor de fulvio em SQL Server
Bom dia Pizero, Não sei ao certo se o sql possui uma tabela para os xtypes identificados na tabela SysObjects. O type = 'U' significa que você quer listar todos os objetos criados no banco que sejam do tipo Tabela. O "P" seriam as Procedures e assim por diante (PK chave primária, F chave estrangeira). -
Boa tarde Alan, A tabela TMOV não está realizando join com nenhuma das outras tabelas. O sql irá exponenciar o resultado.
-
(Resolvido) Declaração de Foreign Key no Sql Server
pergunta respondeu ao Fábio R. L. de Oliveira de fulvio em SQL Server
Eu criaria uma coluna ID para a PK e não mexeria com chave composta! :) A mesma quantidade de colunas na PK tem que estar na FK.... Agora pense se os códigos das cidades mudassem? Sua PK já era.