Ir para conteúdo
Fórum Script Brasil

NIK

Membros
  • Total de itens

    48
  • Registro em

  • Última visita

Tudo que NIK postou

  1. Pessoal... beleza Tenho uma dúvida. Tenho um servidor com 04 bases sendo uma oficial e as demais para testes que faço. Quando vou restaurar uma base teste trava todos os usuários que estão utilizando a base oficial. Está certo isso acontecer? Se eu estou restaurando uma base que é teste com um arquivo que não tem nada a ver com a base oficinal, é certo travar todos os usuários e a base oficial? O SqlServer precisa travar todo mundo para fazer esse restore? Valeu NIK
  2. Valeu Fulvio.... arrebentou ^_^ []'s NIK
  3. Fulvio... não necessáriamente, como irei trabalhar com o ano em vigência, trago as informações quebradas por mes daquele ano.
  4. Fulvio... beleza Nesse caso não dá certo pelo seguinte detalhe na minha tabela tem gente que está registrado antes de 2010. Veja esse exemplo abaixo funcionario......data admissao........datademissao João...............01/05/2007.................vazio........ Pedro.............27/03/2009.................vazio........ Maria..............05/09/2008..............01/04/2010.. Alberto............04/03/2006.................vazio........ Carlos.............01/01/2010..............05/07/2010.. Sebastião.........03/03/2010.................vazio....... Veja só nesse ex acima... temos 4 funcionários que até jan/10 estavam empregados (João,Pedro,Maria,Alberto) + 1 funcionario contratado em jan/10 (Carlos) somando total de 5 funcionarios em jan/10 Feveiro = 5, marco = 5 Em abr/10 foi demitido um func (Maria) - ficando um total de 4 funcionarios + foi contratado o Sebastião ficando total de 5. Em maio = 5, junho = 5 Em julho foi demitido um func (Carlos) - ficando um total de 4 funcionarios.. e assim por diante. Preciso fazer isso acontecer. Valeu NIK
  5. NIK

    Operação no sql

    select TVendas, TCustos, TCustos/TVendas as lucro1, TVendas/TCustos as lucro2 from tabela Caso já tenha os valores somados na tabela, caso contrario faça a soma antes... select sum(vendas)TVendas, sum(custos)TCustos from (select vendas, custos from tabela) a NIK
  6. Ola Pessoal Gostaria de fazer o seguinte... Tenho uma tabela com funcionários e gostaria de saber qual a quantidade mensal nesse ano, conforme abaixo mes-------jan---------fev--------mar-----------abr ... total-------120--------127--------115----------121 ... Todas as informações que preciso está nessa tabela de funcionários, data de admissão, data de demissão (caso tenha), porém, não estou sabendo fazer a sentença. Se alguém puder me ajudar... Obrigado NIK
  7. NIK

    Erro trigger

    Pessoal... bom dia Tenho uma trigger que trabalha dentro de uma tabela a partir do momento que existe uma inserção de um tipo de registro. Até ai tudo bem, porém, muito de vez enquando ao executar acontece o seguinte erro: No user transaction is currently in progress. The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION Alguém sabe em que momento ou porque acontece esse erro... O que me intriga é que não é sempre e sim de vez enquando. Irei colocar a trigger aqui, mas aviso que ela é gigante... ---- CREATE TRIGGER TR_AUXRM_BAIXA_ESTOQUE ON TMOV FOR UPDATE AS DECLARE @ERRO INT DECLARE @PASSO INT DECLARE @NM_ANTIGO VARCHAR(15) DECLARE @NM_NOVO VARCHAR(15) DECLARE @CODTMV VARCHAR(10) DECLARE @ENTROU INT SET @ENTROU = 0 IF ( SELECT COUNT(1) FROM INSERTED WHERE CODCOLIGADA = 01 AND ((CODTMV IN ('2.2.01','2.2.15','2.2.19','2.2.12','2.2.21')) OR (CODTMV = '2.1.06' AND CAMPOLIVRE3 LIKE '%999')) ) > 0 BEGIN SET @NM_ANTIGO = (SELECT NUMEROMOV FROM DELETED) SET @NM_NOVO = (SELECT NUMEROMOV FROM INSERTED) SET @CODTMV = (SELECT CASE WHEN CODTMV = '2.2.01' THEN '2.1.05' WHEN CODTMV = '2.2.15' THEN '2.1.07' WHEN CODTMV = '2.1.06' THEN '2.1.08' ELSE '2.1.09' END AS RESULT FROM INSERTED) IF @NM_ANTIGO <> @NM_NOVO BEGIN SET @ENTROU = 1 DECLARE @IDMOV INT DECLARE @IDMOV_ORIG INT DECLARE @NUMEROMOV VARCHAR(15) DECLARE @DATASEMHORA DATETIME DECLARE @DATACOMHORA DATETIME DECLARE @CODCOLIGADA INT DECLARE @CODFILIAL SMALLINT DECLARE @CODLOC VARCHAR(15) DECLARE @SERIE VARCHAR(8) DECLARE @TIPO VARCHAR(1) DECLARE @STATUS VARCHAR(1) DECLARE @DATAEMISSAO DATETIME DECLARE @DATAEXTRA1 DATETIME DECLARE @CODCPG VARCHAR(5) DECLARE @OBSERVACAO VARCHAR(60) DECLARE @CODMOEVALORLIQUIDO VARCHAR(10) DECLARE @DATAMOVIMENTO DATETIME DECLARE @FRETECIFOUFOB SMALLINT DECLARE @CODCCUSTO VARCHAR(25) DECLARE @CODVEN1 VARCHAR(16) DECLARE @CODCOLCFO SMALLINT DECLARE @CODCOLCXA SMALLINT DECLARE @GERADOPORLOTE SMALLINT DECLARE @STATUSEXPORTCONT SMALLINT DECLARE @CAMPOLIVRE2 VARCHAR(100) DECLARE @GEROUCONTATRABALHO SMALLINT DECLARE @GERADOPORCONTATRABALHO SMALLINT DECLARE @HORULTIMAALTERACAO DATETIME DECLARE @INDUSOOBJ RMDVALOR2 DECLARE @INTEGRADOBONUM SMALLINT DECLARE @HORARIOEMISSAO DATETIME DECLARE @DATACRIACAO DATETIME DECLARE @VINCULADOESTOQUEFL SMALLINT DECLARE @CONTORCAMENTOANTIGO SMALLINT DECLARE @DATACONTABILIZACAO DATETIME DECLARE @SEQUENCIALESTOQUE INT DECLARE @INTEGRADOAUTOMACAO SMALLINT DECLARE @INTEGRAAPLICACAO CHAR(1) DECLARE @DATALANCAMENTO DATETIME DECLARE @USARATEIOVALORFIN SMALLINT DECLARE @SALDO RMDVALOR4 DECLARE @CODPRD VARCHAR(30) SET @SERIE = 'SEXP' SET @DATASEMHORA = CONVERT(VARCHAR,GETDATE(),112) SET @DATACOMHORA = CONVERT(VARCHAR,GETDATE(),112) + ' ' + CONVERT(VARCHAR,GETDATE(),114) SELECT @IDMOV_ORIG = IDMOV, @CODCOLIGADA = CODCOLIGADA, @CODFILIAL = CODFILIAL, @CODLOC = CODLOC, @TIPO = 'A', @STATUS = 'N', @DATAEMISSAO = @DATASEMHORA, @DATAEXTRA1 = @DATASEMHORA, @CODCPG = CODCPG, @OBSERVACAO = OBSERVACAO, @CODMOEVALORLIQUIDO = CODMOEVALORLIQUIDO, @DATAMOVIMENTO = @DATASEMHORA, @FRETECIFOUFOB = FRETECIFOUFOB, @CODCCUSTO = CODCCUSTO, @CODVEN1 = CODVEN1, @CODCOLCFO = CODCOLCFO, @CODCOLCXA = CODCOLCXA, @GERADOPORLOTE = GERADOPORLOTE, @STATUSEXPORTCONT = 0, @CAMPOLIVRE2 = CAMPOLIVRE2, @GEROUCONTATRABALHO = 0, @GERADOPORCONTATRABALHO = 0, @HORULTIMAALTERACAO = @DATACOMHORA, @INDUSOOBJ = 0, @INTEGRADOBONUM = 0, @HORARIOEMISSAO = @DATACOMHORA, @DATACRIACAO = @DATASEMHORA, @VINCULADOESTOQUEFL = 0, @CONTORCAMENTOANTIGO = 0, @DATACONTABILIZACAO = @DATASEMHORA, @SEQUENCIALESTOQUE = SEQUENCIALESTOQUE, @INTEGRADOAUTOMACAO = 0, @INTEGRAAPLICACAO = 'T', @DATALANCAMENTO = @DATASEMHORA, @USARATEIOVALORFIN = USARATEIOVALORFIN FROM INSERTED --VALIDAÇÃO DECLARE ITENS_VALIDA CURSOR FOR SELECT IDPRD, QUANTIDADE, CODUND FROM TITMMOV WHERE CODCOLIGADA = 1 AND IDMOV = @IDMOV_ORIG DECLARE @MENSAGEM VARCHAR(1000) DECLARE @IDPRD_CUR_V INT DECLARE @QUANTIDADE_CUR_V INT DECLARE @CODUND_CUR_V VARCHAR(5) DECLARE @IDPRD_COM_V INT DECLARE @QUANTIDADE_COM_V INT DECLARE @CODUND_COM_V VARCHAR(5) DECLARE @CUSTOMEDIO_COM_V MONEY OPEN ITENS_VALIDA FETCH NEXT FROM ITENS_VALIDA INTO @IDPRD_CUR_V, @QUANTIDADE_CUR_V, @CODUND_CUR_V WHILE @@FETCH_STATUS = 0 BEGIN IF (SELECT COUNT(1) FROM TPRDCOMPOSTO WHERE CODCOLIGADA = 1 AND IDPRD = @IDPRD_CUR_V) = 0 BEGIN SET @ERRO = 1 SET @MENSAGEM = 'Esta NF possui itens não compostos (fazer baixa manual)' CLOSE ITENS_VALIDA DEALLOCATE ITENS_VALIDA GOTO ERRO_VALIDA END ELSE BEGIN DECLARE COMPOSTO_VALIDA CURSOR FOR SELECT C.IDPRDCOMPONENTE, C.QUANTIDADE, T.CODUNDCONTROLE , T.CUSTOMEDIO FROM TPRDCOMPOSTO C INNER JOIN TPRD T ON T.IDPRD = C.IDPRDCOMPONENTE WHERE C.IDPRD = @IDPRD_CUR_V OPEN COMPOSTO_VALIDA FETCH NEXT FROM COMPOSTO_VALIDA INTO @IDPRD_COM_V, @QUANTIDADE_COM_V, @CODUND_COM_V, @CUSTOMEDIO_COM_V WHILE @@FETCH_STATUS = 0 BEGIN SELECT @SALDO=TPRD.SALDOGERALFISICO, @CODPRD=TPRD.CODIGOPRD FROM TPRD WHERE IDPRD = @IDPRD_COM_V IF (@SALDO) < (@QUANTIDADE_COM_V * @QUANTIDADE_CUR_V) BEGIN SET @ERRO = 2 SET @MENSAGEM = 'O produto ' + @CODPRD + ' não possui saldo suficiente' CLOSE COMPOSTO_VALIDA DEALLOCATE COMPOSTO_VALIDA CLOSE ITENS_VALIDA DEALLOCATE ITENS_VALIDA GOTO ERRO_VALIDA END IF ISNULL(@CUSTOMEDIO_COM_V,0) = 0 BEGIN SET @ERRO = 3 SET @MENSAGEM = 'O produto ' + @CODPRD + ' não possui custo médio cadastrado' CLOSE COMPOSTO_VALIDA DEALLOCATE COMPOSTO_VALIDA CLOSE ITENS_VALIDA DEALLOCATE ITENS_VALIDA GOTO ERRO_VALIDA END FETCH NEXT FROM COMPOSTO_VALIDA INTO @IDPRD_COM_V, @QUANTIDADE_COM_V, @CODUND_COM_V, @CUSTOMEDIO_COM_V END CLOSE COMPOSTO_VALIDA DEALLOCATE COMPOSTO_VALIDA END FETCH NEXT FROM ITENS_VALIDA INTO @IDPRD_CUR_V, @QUANTIDADE_CUR_V, @CODUND_CUR_V END CLOSE ITENS_VALIDA DEALLOCATE ITENS_VALIDA UPDATE GAUTOINC SET VALAUTOINC=VALAUTOINC+1 WHERE CODCOLIGADA=1 AND CODAUTOINC='IDMOV' SET @IDMOV = (SELECT VALAUTOINC FROM GAUTOINC WHERE CODCOLIGADA=1 AND CODAUTOINC='IDMOV') UPDATE GAUTOINC SET VALAUTOINC=VALAUTOINC+1 WHERE CODCOLIGADA=1 AND CODAUTOINC=@SERIE+'000001' SET @NUMEROMOV = right('000000' + CONVERT(VARCHAR,(SELECT VALAUTOINC FROM GAUTOINC WHERE CODCOLIGADA=1 AND CODAUTOINC=@SERIE+'000001')),6) INSERT INTO TMOV ( IDMOV, NUMEROMOV, CODCOLIGADA, CODFILIAL, CODLOC, SERIE, CODTMV, TIPO, STATUS, DATAEMISSAO, DATAEXTRA1, CODCPG, OBSERVACAO, CODMOEVALORLIQUIDO, DATAMOVIMENTO, FRETECIFOUFOB, CODCCUSTO, CODVEN1, CODCOLCFO, CODCOLCXA, GERADOPORLOTE, STATUSEXPORTCONT, CAMPOLIVRE2, GEROUCONTATRABALHO, GERADOPORCONTATRABALHO, HORULTIMAALTERACAO, INDUSOOBJ, INTEGRADOBONUM, HORARIOEMISSAO, DATACRIACAO, VINCULADOESTOQUEFL, CONTORCAMENTOANTIGO, DATACONTABILIZACAO, SEQUENCIALESTOQUE, INTEGRADOAUTOMACAO, INTEGRAAPLICACAO, DATALANCAMENTO, USARATEIOVALORFIN ) VALUES ( @IDMOV, @NUMEROMOV, @CODCOLIGADA, @CODFILIAL, @CODLOC, @SERIE, @CODTMV, @TIPO, @STATUS, @DATAEMISSAO, @DATAEXTRA1, @CODCPG, @OBSERVACAO, @CODMOEVALORLIQUIDO, @DATAMOVIMENTO, @FRETECIFOUFOB, @CODCCUSTO, @CODVEN1, @CODCOLCFO, @CODCOLCXA, @GERADOPORLOTE, @STATUSEXPORTCONT, @CAMPOLIVRE2, @GEROUCONTATRABALHO, @GERADOPORCONTATRABALHO, @HORULTIMAALTERACAO, @INDUSOOBJ, @INTEGRADOBONUM, @HORARIOEMISSAO, @DATACRIACAO, @VINCULADOESTOQUEFL, @CONTORCAMENTOANTIGO, @DATACONTABILIZACAO, @SEQUENCIALESTOQUE, @INTEGRADOAUTOMACAO, @INTEGRAAPLICACAO, @DATALANCAMENTO, @USARATEIOVALORFIN ) INSERT INTO TMOVHISTORICO ( CODCOLIGADA, IDMOV, HISTORICOCURTO ) VALUES ( @CODCOLIGADA, @IDMOV, 'BAIXA' ) DECLARE @IDMOVDESTINO INT DECLARE @CODCOLDESTINO INT DECLARE @IDPROCESSO INT SELECT @IDMOVDESTINO = IDMOVDESTINO, @CODCOLDESTINO = CODCOLDESTINO FROM TMOVRELAC WHERE IDMOVDESTINO = @IDMOV_ORIG UPDATE GAUTOINC SET VALAUTOINC=VALAUTOINC+1 WHERE CODCOLIGADA=1 AND CODAUTOINC='IDPROCESSOFAT' SET @IDPROCESSO = (SELECT VALAUTOINC FROM GAUTOINC WHERE CODCOLIGADA=1 AND CODAUTOINC='IDPROCESSOFAT') INSERT INTO TMOVRELAC VALUES ( @IDMOVDESTINO, @CODCOLDESTINO, @IDMOV, @CODCOLIGADA, 'P', @IDPROCESSO ) DECLARE ITENS CURSOR FOR SELECT IDPRD, QUANTIDADE, CODUND, NSEQITMMOV FROM TITMMOV WHERE IDMOV = @IDMOV_ORIG DECLARE @SEQ INT DECLARE @SEQUENCIA_CUR INT DECLARE @IDPRD_CUR INT DECLARE @QUANTIDADE_CUR INT DECLARE @CODUND_CUR VARCHAR(5) DECLARE @IDPRD_COM INT DECLARE @QUANTIDADE_COM INT DECLARE @CODUND_COM VARCHAR(5) DECLARE @CUSTOMEDIO_COM MONEY DECLARE @VALOR_GERAL MONEY DECLARE @QUANTIDADE_SOBRA INT DECLARE @IDLOTE INT DECLARE @QUANTIDADE_LOTE INT DECLARE @QUANTIDADE_B_LOTE INT SET @SEQ = 0 SET @VALOR_GERAL = 0 OPEN ITENS FETCH NEXT FROM ITENS INTO @IDPRD_CUR, @QUANTIDADE_CUR, @CODUND_CUR, @SEQUENCIA_CUR WHILE @@FETCH_STATUS = 0 BEGIN IF (SELECT COUNT(1) FROM TPRDCOMPOSTO WHERE IDPRD = @IDPRD_CUR) > 0 BEGIN DECLARE COMPOSTO CURSOR FOR SELECT C.IDPRDCOMPONENTE, C.QUANTIDADE, T.CODUNDCONTROLE , T.CUSTOMEDIO FROM TPRDCOMPOSTO C INNER JOIN TPRD T ON T.IDPRD = C.IDPRDCOMPONENTE WHERE C.IDPRD = @IDPRD_CUR OPEN COMPOSTO FETCH NEXT FROM COMPOSTO INTO @IDPRD_COM, @QUANTIDADE_COM, @CODUND_COM, @CUSTOMEDIO_COM WHILE @@FETCH_STATUS = 0 BEGIN SET @SEQ = @SEQ + 1 INSERT INTO TITMMOV (CODCOLIGADA, IDMOV, NSEQITMMOV, NUMEROSEQUENCIAL, IDPRD, QUANTIDADE, PRECOUNITARIO, CODUND, CAMPOLIVRE ) VALUES ( @CODCOLIGADA, @IDMOV, @SEQ, @SEQ, @IDPRD_COM, (@QUANTIDADE_COM*@QUANTIDADE_CUR), @CUSTOMEDIO_COM, @CODUND_COM , CONVERT(VARCHAR(15),@SEQUENCIA_CUR) ) SET @QUANTIDADE_SOBRA = (@QUANTIDADE_COM*@QUANTIDADE_CUR) UPDATE TPRDLOC SET SALDOFISICO2 = SALDOFISICO2 - @QUANTIDADE_SOBRA, SALDOFISICO5 = SALDOFISICO5 - @QUANTIDADE_SOBRA, SALDOFINANCEIRO2 = SALDOFINANCEIRO2 - (@QUANTIDADE_SOBRA * @CUSTOMEDIO_COM) WHERE CODLOC = '01' AND IDPRD = @IDPRD_COM SET @QUANTIDADE_B_LOTE = 0 WHILE (@QUANTIDADE_SOBRA > 0) BEGIN SELECT @IDLOTE=IDLOTE, @QUANTIDADE_LOTE=SALDOFISICO2 FROM TLOTEPRDLOC WHERE IDPRD = @IDPRD_COM AND SALDOFISICO2 <> 0 AND CODLOC = '01' AND IDLOTE = (SELECT MIN(IDLOTE) FROM TLOTEPRDLOC WHERE IDPRD = @IDPRD_COM AND SALDOFISICO2 <> 0 AND CODLOC = '01') ORDER BY IDLOTE IF @QUANTIDADE_LOTE <= @QUANTIDADE_SOBRA BEGIN SET @QUANTIDADE_SOBRA = @QUANTIDADE_SOBRA - @QUANTIDADE_LOTE SET @QUANTIDADE_B_LOTE = @QUANTIDADE_LOTE UPDATE TLOTEPRDLOC SET SALDOFISICO2 = 0, SALDOFISICO5 = 0 WHERE IDLOTE = @IDLOTE END ELSE BEGIN UPDATE TLOTEPRDLOC SET SALDOFISICO2 = SALDOFISICO2 - @QUANTIDADE_SOBRA, SALDOFISICO5 = SALDOFISICO5 - @QUANTIDADE_SOBRA WHERE IDLOTE = @IDLOTE SET @QUANTIDADE_B_LOTE = @QUANTIDADE_SOBRA SET @QUANTIDADE_SOBRA = 0 END INSERT INTO TITMLOTEPRD (CODCOLIGADA, IDMOV, NSEQITMMOV, IDLOTE, QUANTIDADE2, QUANTIDADEARECEBER) VALUES (@CODCOLIGADA, @IDMOV, @SEQ, @IDLOTE, (@QUANTIDADE_B_LOTE)*-1, (@QUANTIDADE_B_LOTE)*-1) END SET @VALOR_GERAL = @VALOR_GERAL + (@CUSTOMEDIO_COM*(@QUANTIDADE_COM*@QUANTIDADE_CUR)) UPDATE TPRD SET SALDOGERALFISICO = SALDOGERALFISICO - (@QUANTIDADE_COM*@QUANTIDADE_CUR) WHERE IDPRD = @IDPRD_COM FETCH NEXT FROM COMPOSTO INTO @IDPRD_COM, @QUANTIDADE_COM, @CODUND_COM, @CUSTOMEDIO_COM END CLOSE COMPOSTO DEALLOCATE COMPOSTO END FETCH NEXT FROM ITENS INTO @IDPRD_CUR, @QUANTIDADE_CUR, @CODUND_CUR, @SEQUENCIA_CUR END CLOSE ITENS DEALLOCATE ITENS UPDATE TMOV SET VALORBRUTO = @VALOR_GERAL, VALORLIQUIDO = @VALOR_GERAL, VALOROUTROS = @VALOR_GERAL WHERE IDMOV = @IDMOV END END ERRO_VALIDA: IF @ENTROU = 1 BEGIN IF @ERRO <> 0 BEGIN INSERT INTO TB_LOG_AUXRM VALUES (@NM_NOVO, NULL, 'E',@MENSAGEM,@DATACOMHORA) END ELSE BEGIN INSERT INTO TB_LOG_AUXRM VALUES (@NM_NOVO, @NUMEROMOV, 'O','',@DATACOMHORA) INSERT INTO TB_RELAC_AUXRM VALUES(@IDMOV_ORIG,@IDMOV) END END SET NOCOUNT OFF SET ANSI_NULLS OFF SET ANSI_WARNINGS ON ---- Valeu NIK
  8. NIK

    Enviar email via SQL

    Fulvio... desculpe me, pois por mais que eu tenha tentado entender e implementar o processo conforme enviado por você, surgem duvidas que não consigo desvendar... Por um acaso você usa ou conhece alguém que já usou isso?? e funciona?? Pois pela falta de artigos e uso, parece que não é algo fácil ou eficiente... Irei continuar tentando, porém, se alguém tiver algo já funcionando referente a isso, gentileza me passar. Obrigado NIK
  9. NIK

    Enviar email via SQL

    Bom dia... Fiz direto no Enterprise Manager... e retornou a seguinte mensagem... [Microsoft][ODBC SQL Server Driver][sql Server] xp_sendmail: procedure expects parameter @user, which was not supplied. Sabe o que pode ser... Obrigado NIK Bem... talvez eu esteja errando o processo... É só rodar o script que coloquei acima e pedir para rodar??? será que tem que fazer alguma configuração antes? Se alguém tiver um script para me enviar... Obrigado
  10. NIK

    Enviar email via SQL

    ao executar... EXEC master.dbo.xp_sendmail @recipients=N'xxxx@xxxxx.com.br', @message=N'Teste teste teste.' ; retona o seguinte erro EXECUTE permission denied on object 'xp_sendmail', database 'master', owner 'dbo'. Será que tem algo mais... Valeu NIK
  11. NIK

    Enviar email via SQL

    Ola... Fantasma Valeu pela ajuda, porém, não é bem isso que gostaria Caso alguém saiba como posso fazer? Agradeço Criei a trigger e quando houver alteração de status de 'A' para 'C' ele envia um email que será configurado dentro da trigger. Valeu NIK
  12. Ola.... pessoal Gostaria de criar uma trigger que ao se fazer alteração do tipo do movimento da tabela de clientes de 'A' para 'C' envie uma mensagem que definirei para um usuario do grupo de email do servidor local. Obrigado NIK Tabela = Cliente movimento = 'A' (default) e alterado para 'C' quando necessário. - nesse momento a trigger verificar e manda email para a pessoa com texto definido.
  13. Valeu Fulvio... Muito Obrigado NIK
  14. Fulvio...beleza na verdade preciso desse resultado pois irei jogar em um relatório. Dessa forma se eu puder colocar em uma tabela temporária ai fica mais fácil de inserir no relatório. Sabe como faço isso? Valeu NIK
  15. Ola... pessoal Estou precisando do seguinte tenho que pegar a data de hoje e saber a data da próxima segunda... EX... Hoje é 11/06/2010, preciso que o sistema me retorne a proxima segunda, no caso 14/06/2010. Pensei em fazer isso em um while criando uma tabela temporária e incrementando na data +1 até a próxma segunda. Alguém sabe como posso fazer isso? Obrigado NIK
  16. Cara... você é um :ninja: Poxa... meus parabéns... realmente você é um especialista no negócio. Obrigado pela ajuda. NIK
  17. Desculpe Fulvio... meus conhecimentos ainda não estão nesse nível... :blush: mas um dia chego lá :rolleyes: Bem... Entendi assim - Selecionar os campos da tabela Cliente (select c.name from sysobjects o, syscolumns c where o.name='Cliente' and o.id=c.id) OK - nesse caso aparecerá todas as colunas da minha tabela cliente - Gravar estes campos em uma tabela auxiliar Ok - pego esses dados e gravo em uma tabela auxiliar. - Montar dinamicamente o script, passando as colunas para serem verificadas Bem... verifique com seu script que retorna dados da syscolumns porém não entendi, pois no caso como faço para ver o que está em cada célula da coluna?? - Caso os dados sejam diferentes, "updatar". Aqui ainda vou verificar... Obrigado NIK
  18. Ola... Fulvio teria um exemplo para me enviar referente a montar dinamicamente o script? Valeu NIK
  19. Ola... pessoal Tenho duas bases uma chamada A e outra B, e elas tem as mesmas tabelas. Vamos pegar em especial a tabela de clientes O que eu preciso As duas tem um cliente cadastrado, porém, na base A nessa tabela (cliente) fizeram uma alteração no campo endereço. Como faço para atualizar a base B atraves de uma sp, não sei se dá, mas não queria fazer campo a campo, alguma coisa que verificasse que existe um campo diferente dentro da tabela para mim. Valeu galera Obrigado NIK
  20. NIK

    Usando o CASE

    Use uma sentença na condição where pegando o resultado e jogando na sua consuta -- select * from cliente where codcliente in ( select case when codcli = 'c00210' then 'c01680' else 'c01675' end as result from cliente where codcli = 'c00210' ) -- Dessa forma o retorno da condição where será aplicada a sua consulta. NIK
  21. Fulvio... beleza nesse caso ---- extraido do seu texto Declare @SQL varchar(50) Declare @NomeTabela varchar(50) Set @SQL = 'select * from ' + @NomeTabela + ' where not exists (select * from '+ @NomeTabela + ')' exec (@SQL) ---- Tenho que referenciar campo a campo, ele pega a linha inteira, e outra coisa, ele somente incluirá linhas que ainda não existem ou verificará a tabela inteira e fará um update em toda a tabela?? :wacko: Valeu NIK
  22. Fulvio... beleza?? Obrigado pela resposta... Bem... a idéia é essa, porém, não sei se você conhece mas trabalho com RM Sistemas e os módulos deles e a estrutura de dados tem tabela pra caramba, mas nesse caso não seriam todas elas atualizadas não, somente algumas. No processo que você mostrou abaixo, não teria empacto nas chaves primárias e estrangeiras? Caso eu fizesse uma importação de dados de uma tabela que na verdade recebe dados de outra que não foi atualizada? Valeu NIK
  23. Pessoal... bom dia Eu gostaria da ajuda de vocês para uma situação. Tenho uma base oficial chamada BASE1 e fiz um backup/restore em uma nova base que chamo de BASETESTE. Até ai tudo bem. O que eu preciso fazer agora. A base oficial é onde todos trabalham, dessa forma, existe inclusão de novos clientes, fornecedores, produtos etc constantemente. A base teste que criei somente é para meu uso, porém, eu preciso que toda inserção de novos registros, inclusão de clientes, etc da base oficial sejam copiados nessa minha base teste. Não necessariamente automatico, pode ser uma vez ao dia, com um detalhe irei fazer algumas alterações de dados na base teste que não poderão ser sobrepostos quando vier informações da base oficial, por isso, que preciso que somente sejam copiados novas informações inseridas na base oficial. Caso alguém possa me ajudar... Obrigado a todos e tenham um excelente dia. NIK :D
×
×
  • Criar Novo...