Usuário com melhor resposta
procedure

Pergunta
-
Olá a todos..
Tenho o seguinte código:
alter procedure teste_dados
as
begin
create table tb_teste (
nome varchar(100),
cpf varchar(100)
)
end
Criei a tabela dentro da procedure. Da primeira vez está executando, da segunda vez fala que a tabela já existe.
Alguém pode me ajudar
Respostas
-
Mari, veja se é isto o que quer, fiz o exemplo abaixo onde na procedure é verificado se a tabela ja existe, caso não exista é criada, e executa o restante do codigo, caso exista pula a parte da criação e continua o codigo.
Create procedure teste_dados as begin IF OBJECT_ID (N'tb_teste', N'U') IS NULL begin create table tb_teste ( nome varchar(100), cpf varchar(100) ) end -- AQUI VAI O RESTANTE DO SEU CODIGO END
Alexandre Matayosi Conde Mauricio.
- Sugerido como Resposta Thiago Patrocinio quinta-feira, 13 de fevereiro de 2014 18:43
- Marcado como Resposta Giovani Cr quarta-feira, 19 de fevereiro de 2014 11:57
Todas as Respostas
-
Boa tarde,
Qual é objetivo da procedure?
Essa tabela está sendo criada para que?
Dependendo do caso você pode verificar se a tabela já existe e executar um Drop antes do Create:
IF OBJECT_ID (N'tb_teste', N'U') IS NOT NULL DROP TABLE tb_teste;
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 15 de fevereiro de 2014 13:11
-
É simplesmente uma tabela exemplo. Estou aprendendo e tive a duvida se poderia ou não criar uma tabela dentro de uma procedure .
NÃO QUERO 'DROPAR'
O que quero é verificar se ela existe e fazer com que os dados existentes nela executem.
Eu sei verificar se uma tabela existe no sistema
Desse jeito>
if exists(select * from sys.objects where object_id = object_id('tb_teste'))
print 'a'
else
print 'b'Mas não sei ligar a procedure.
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 15 de fevereiro de 2014 13:11
-
Mari, da primeira vez funcionou por que a tabela ainda não existia, na segunda vez como ela ja existia retornou o erro informando que esta tabela ja existe, voce pode colocar o codigo acima dentro da procedure ou criar qualquer tabela dentro dela, desde que não exista.
Alexandre Matayosi Conde Mauricio.
-
-
Mari, veja se é isto o que quer, fiz o exemplo abaixo onde na procedure é verificado se a tabela ja existe, caso não exista é criada, e executa o restante do codigo, caso exista pula a parte da criação e continua o codigo.
Create procedure teste_dados as begin IF OBJECT_ID (N'tb_teste', N'U') IS NULL begin create table tb_teste ( nome varchar(100), cpf varchar(100) ) end -- AQUI VAI O RESTANTE DO SEU CODIGO END
Alexandre Matayosi Conde Mauricio.
- Sugerido como Resposta Thiago Patrocinio quinta-feira, 13 de fevereiro de 2014 18:43
- Marcado como Resposta Giovani Cr quarta-feira, 19 de fevereiro de 2014 11:57