• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

cash

[SQL SERVER + VB .NET] Construir Stored Procedure

3 mensagens neste tópico

Ola!

Estou com um problema e queria fazer do melhor modo. 

Deparei-me com o seguinte:  Tenho uma LISTBOX e se selecionar 3 itens vou ter de inserir 3 registos na base de dados ( n registos = n Inserts)

Para o seguinte caso o que varia é a desiganção:

CREATE Procedure INSERT teste
(  

@Data                     datetime,
@Designacao          varchar(100)

)
AS
    SET NOCOUNT ON
INSERT INTO Teste
    (
data_registo,
        designacao 

    )
    VALUES 
    (
        @Data,
@Designacao
    )
RETURN @@ROWCOUNT

Posso modificar isto de modo a fazer os 3 inserts de uma so vez?  Tipo fazer um if ou qq coisa. 

OBs: No fim dos inserts dava-me uma informação de ok senão fazia rolback e dava uma msg de erro.

Estou com pouco tempo e não posso andar a googlar ( agradecia mesmo uma ajuda)

OBRIGADO

;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A melhor maneira é chamares  o stored procedure 3 vezes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela resposta...

Essa é a maneira q eu sabia, mas pensei q o ideal era fazer isso apenas numa stored procedure, já q afinal de contas eu preciso q os tres inserts (neste caso) sejam todos feitos com sucesso (Ou insere todos ou faz rolback se der erro)

Obs: Isto é tudo novo para mim (Stored Procedures,Transações,etc)  :-[

Edit: No código em vb.net utilizei transacções... (são meia duzia linhas de código e funciona na perfeição) . Experimentei inserir 5 registos onde o ultimo levava uma foreign kei q não era existente e deu logo erro e fez o rollback :)

Normalmente as minhas duvidas são a nível de performance  (gosto de fazer as coisas em condições )

bye.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora