Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×

Script Dinâmico - Delete PFUNC


Posts Recomendados


  • Tópicos Que Criei:  32
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  565
  • Conteúdo/Dia:  0.09
  • Reputação:   10
  • Pontos/Conquistas:  3.159
  • Conteúdo Resolvido:  0
  • Dias Ganho:  5
  • Status:  Offline
  • Idade:  43
  • Dispositivo:  Windows

Galera, como estou fazendo migração para o Labore de uma base relativamente grande, surgiu a necessidade de criar algo como este script que estou postando......

Fiquem à vontade para contribuirem com melhorias.

Foi desenvolvido no ambiente SQL 2005 e nem usei alguns recursos que poderia pra ficar compatível com versões mais antigas ok?!

Um abraço,

sp_delete_pfunc.rar

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  32
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  565
  • Conteúdo/Dia:  0.09
  • Reputação:   10
  • Pontos/Conquistas:  3.159
  • Conteúdo Resolvido:  0
  • Dias Ganho:  5
  • Status:  Offline
  • Idade:  43
  • Dispositivo:  Windows

Pessoal, depois de 11 downloads alguém testou em um ambiente inferior ao SQL2005? Está funcionando?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.842
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.579
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Tem muita gente que baixa, baixa... e não comenta nada... nem que baixou, nem depois, com observações...

A gente posta coisas pra ajudar, sempre... tentando fazer as coisas pra os outros que nem conhecemos, e nem um OBRIGADO, nem um COMENTÁRIO... As vezes é desanimador.

As pessoas, não têm em lugar algum na internet uma área como esta que desenvolvemos para toda a comunidade RM, e não sabem usar de forma compartilhada a informação.

Gente, da mesma forma que hoje vc pesquisa algo aqui e encontra, e lhe ajuda, se você comenta, poderá ajudar outros. Detalhe, os OUTROS, poderá ser você mesmo amanhã. Vcs não enchergam isso ????

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.842
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.579
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Fábio, estava analisando aqui... Legal o que montou.

O que esta SP faz, é fazer a limpeza da PFunc e demais tabelas que usam registro da PFUNC, para que, em uma nova importação, vc já pegue a base totalmente limpa ? é isso ???

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  32
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  565
  • Conteúdo/Dia:  0.09
  • Reputação:   10
  • Pontos/Conquistas:  3.159
  • Conteúdo Resolvido:  0
  • Dias Ganho:  5
  • Status:  Offline
  • Idade:  43
  • Dispositivo:  Windows

Isso mesmo Jair.... como não usamos aqui o Corpore inteiro, filtrei pra deletar algumas tabelas apenas... (select do 1º cursor).

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  134
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  1.225
  • Conteúdo/Dia:  0.19
  • Reputação:   2
  • Pontos/Conquistas:  7.400
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Dispositivo:  Windows

Deu os seguintes erros ao tentar gravar.Nao anexei como arquivo, porque nao esta fucionando o anexar.

Server: Msg 170, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 38

Line 38: Incorrect syntax near 'max'.

Server: Msg 170, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 39

Line 39: Incorrect syntax near 'max'.

Server: Msg 170, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 47

Line 47: Incorrect syntax near 'max'.

Server: Msg 170, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 48

Line 48: Incorrect syntax near 'max'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 55

Must declare the variable '@ccQuery1'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 55

Must declare the variable '@ccQuery1'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 61

Must declare the variable '@ccTabNiv1'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 65

Must declare the variable '@ccTabNiv1'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 67

Must declare the variable '@ccQuery0'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 72

Must declare the variable '@ccTabNiv0'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 76

Must declare the variable '@ccTabNiv0'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 77

Must declare the variable '@ccTabNiv0'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 79

Must declare the variable '@ccTabNiv0'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 92

Must declare the variable '@ccTabNiv1'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 93

Must declare the variable '@ccTabNiv1'.

Server: Msg 137, Level 15, State 1, Procedure SP_DELETE_PFUNC, Line 95

Must declare the variable '@ccTabNiv1'.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  32
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  565
  • Conteúdo/Dia:  0.09
  • Reputação:   10
  • Pontos/Conquistas:  3.159
  • Conteúdo Resolvido:  0
  • Dias Ganho:  5
  • Status:  Offline
  • Idade:  43
  • Dispositivo:  Windows

Mauricio, em qual versão do sql?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  134
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  1.225
  • Conteúdo/Dia:  0.19
  • Reputação:   2
  • Pontos/Conquistas:  7.400
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Dispositivo:  Windows

Estou no 2000

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  32
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  565
  • Conteúdo/Dia:  0.09
  • Reputação:   10
  • Pontos/Conquistas:  3.159
  • Conteúdo Resolvido:  0
  • Dias Ganho:  5
  • Status:  Offline
  • Idade:  43
  • Dispositivo:  Windows

Onde eu "setei" os types das variáveis varchar (@ccQuery1, etc) altere de varchar(max) para varchar(4000).

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  134
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  1.225
  • Conteúdo/Dia:  0.19
  • Reputação:   2
  • Pontos/Conquistas:  7.400
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Dispositivo:  Windows

Beleza. Agora deu certo. Valeu .

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  92
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  791
  • Conteúdo/Dia:  0.13
  • Reputação:   1
  • Pontos/Conquistas:  4.838
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  38

Fábio Maia, obrigado, testei aqui com as alterações que vc aconselhou o Mauricio, pois utilizo o SQL2000 tb

Link para comentar
Compartilhar em outros sites

  • 3 meses depois...

  • Tópicos Que Criei:  13
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  36
  • Conteúdo/Dia:  0.01
  • Reputação:   0
  • Pontos/Conquistas:  310
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  53
  • Dispositivo:  Windows

tentei usar mas me retornou a seguinte mensagem:

Server: Msg 2812, Level 16, State 62, Line 1

Could not find stored procedure 'coligada'.

uso o sql 2000

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  32
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  565
  • Conteúdo/Dia:  0.09
  • Reputação:   10
  • Pontos/Conquistas:  3.159
  • Conteúdo Resolvido:  0
  • Dias Ganho:  5
  • Status:  Offline
  • Idade:  43
  • Dispositivo:  Windows

Vc deve estar alterando ao invés de criando..... ALTER PROCEDURE ao invés de CREATE PROCEDURE....

Link para comentar
Compartilhar em outros sites

  • 4 anos depois...

  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  8
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  40
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Vc deve estar alterando ao invés de criando..... ALTER PROCEDURE ao invés de CREATE PROCEDURE....

Bom dia...

esta dando essa msg ;

Server: Msg 2714, Level 16, State 5, Procedure SP_DELETE_PFUNC, Line 65535

There is already an object named 'SP_DELETE_PFUNC' in the database

o que pode esta acontecendo.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.842
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.579
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Cesar, esse erro é porque está tentando criar a procedure, quando ela já está criada, neste caso a "SP_DELETE_PFUNC".

Em que momento exatamente está dando o erro ? Ao gravá-la? Não está tentando fazer duas vezes a criação dela não??

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  8
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  40
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Cesar, esse erro é porque está tentando criar a procedure, quando ela já está criada, neste caso a "SP_DELETE_PFUNC".

Em que momento exatamente está dando o erro ? Ao gravá-la? Não está tentando fazer duas vezes a criação dela não??

sql2000 estou executando no query analizer, estou correto, quando mudei pra ALTER e deu a mensagem "The command(s) completed successfully",

mais não saiu nenhum funcionario, o que pode estar acontecendo.

Grato

Editado por Cesar200
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  11
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  1.140
  • Conteúdo/Dia:  0.21
  • Reputação:   60
  • Pontos/Conquistas:  6.161
  • Conteúdo Resolvido:  0
  • Dias Ganho:  33
  • Status:  Offline
  • Idade:  42
  • Dispositivo:  Windows

Cesar, troque o Create por Alter que deve funcionar

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  8
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  40
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Cesar, troque o Create por Alter que deve funcionar

Amigo troquei mais não apagou, da a msg do topico acima e não apaga os dados.

não sei o que esta acontecendo, alguém pode me dar uma luz.

Grato

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  11
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  1.140
  • Conteúdo/Dia:  0.21
  • Reputação:   60
  • Pontos/Conquistas:  6.161
  • Conteúdo Resolvido:  0
  • Dias Ganho:  33
  • Status:  Offline
  • Idade:  42
  • Dispositivo:  Windows

Cesar a mensagem "There is already an object named 'SP_DELETE_PFUNC' in the database" que você postou acima diz que já existe a Procedure no banco se você fizer qualquer alteração na mesma precisa ao invés de Create trocar por Alter, ai você compila novamente (F5) e depois executa a Procedure com os parâmetros.

Se fizer tudo isso e executar qual a mensagem que retorno para você?

[]'s

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  8
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  40
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Cesar a mensagem "There is already an object named 'SP_DELETE_PFUNC' in the database" que você postou acima diz que já existe a Procedure no banco se você fizer qualquer alteração na mesma precisa ao invés de Create trocar por Alter, ai você compila novamente (F5) e depois executa a Procedure com os parâmetros.

Se fizer tudo isso e executar qual a mensagem que retorno para você?

[]'s

Foi a seguinte mensgem; "The command(s) completed successfully", so que acesso minha base de dados e esta tudo lá, ou seja não tá deletando. O quer pode estar acontecendo.

Sds

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  11
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  1.140
  • Conteúdo/Dia:  0.21
  • Reputação:   60
  • Pontos/Conquistas:  6.161
  • Conteúdo Resolvido:  0
  • Dias Ganho:  33
  • Status:  Offline
  • Idade:  42
  • Dispositivo:  Windows

Cesar,

Então a procedure foi alterada com sucesso, você chegou a executar o comando exec SP_DELETE_PFUNC 'chapa',coligada, executando esse comando o sistema não exclui o funcionário que você pediu?

[]'s

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  8
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  40
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Cesar,

Então a procedure foi alterada com sucesso, você chegou a executar o comando exec SP_DELETE_PFUNC 'chapa',coligada, executando esse comando o sistema não exclui o funcionário que você pediu?

[]'s

Amigo,

Quero deletar todos os funcionários da tabela PFUNC. e não esta acontecendo.

Sds

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  11
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  1.140
  • Conteúdo/Dia:  0.21
  • Reputação:   60
  • Pontos/Conquistas:  6.161
  • Conteúdo Resolvido:  0
  • Dias Ganho:  33
  • Status:  Offline
  • Idade:  42
  • Dispositivo:  Windows

Cesar,

Esse script que foi postado pelo Fábio, usa como parâmetro a chapa e a coligada de cada funcionário se quiser todos será necessário uma modificação no script para que funciona da forma que deseja.

[]'s

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  8
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  40
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Cesar,

Esse script que foi postado pelo Fábio, usa como parâmetro a chapa e a coligada de cada funcionário se quiser todos será necessário uma modificação no script para que funciona da forma que deseja.

[]'s

Eu quero fazer de todas as chapas ! Tem alguma ideiai como fazer.

Saudações

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.842
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.579
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Exatamente como o Frederico falou acima.

Quando chamar a procedure, ela vai rodar e apagar todos os registros de um Funcionário que vc especificar, um a um.

Exemplo:

SP_DELETE_PFUNC '000525', '1' --- Aqui para deletar o funcionário de chapa 000525 da coligada 1.

Após executar essa linha acima, sem o comentário que coloquei ao lado, claro, deverá retornar alguma mensagem, como:

Funcionário e/ou Coligada Inválidos - Verifique os parâmetros informados!

Funcionário excluído com sucesso - Coligada: 1 - Chapa 000525

ou

Erros no processo - Rollback executado!

Para isso apenas tem que criar a procedure no banco, que é o primeiro passo que vc citou acima

quando mudei pra ALTER e deu a mensagem "The command(s) completed successfully",

A mensagem "The command(s) completed successfully" indica que a procedure está gravada no banco, e agora basta rodar, chapa a chapa para limpar o que deseja no banco de dados.

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.