Como criar uma stored Procedure que testa se existe os dados na tabela antes de inserir??
-
segunda-feira, 5 de março de 2012 23:52
Olá pessoal, eu criei a SP abaixo, mas eu gostaria de testar na SP se o cnpj e o codigo já exitem cadastrados na tabela antes de inserir os dados.
USE [mydatabase]
GO
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[InsertData]
(
@paisId int,
@codigo varchar(10),
@nome varchar(50),
@nome2 varchar(50),
@cnpj varchar(22),
@set varchar(50)
)
AS
Insert into myTable(paisId,codigo,nome,nome2,cnpj,set) values (@paisId,@codigo,@nome,@nome2,@cnpj,@set)
RETURN
GO
alguém poderia me dizer como eu poderia fazer a SP retornar -1 caso exista o codigo e o cnpj na tabela, e caso não exista retornar o id da linha inserida??
OBS: eu estou chamando esta procedure numa classe em C# windows form
Todas as Respostas
-
terça-feira, 6 de março de 2012 00:29
Olá WCA,
Você pode alterar sua proc da forma com está no script abaixo:
CREATE PROCEDURE [dbo].[InsertData] ( @paisId int, @codigo varchar(10), @nome varchar(50), @nome2 varchar(50), @cnpj varchar(22), @set varchar(50) ) AS IF EXISTS ( SELECT CODIGO,CNPJ FROM myTable WHERE CODIGO = @codigo AND CNPJ = @cnpj ) BEGIN RETURN - 1 END ELSE BEGIN Insert into myTable(paisId,codigo,nome,nome2,cnpj,set) values (@paisId,@codigo,@nome,@nome2,@cnpj,@set) END
Só não entendi o que você quis dizer com o id da linha, se sua tabela possui uma coluna IDENTITY e você quer retornar o último valor basta você acrescentrar o select abaixo logo após o insert.
SELECT IDENT_CURRENT('myTable')Espero ter ajudado.
David Silva | MCITP| MCTS | MCP | ITILF | Blog: http://tilive.wordpress.com
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 6 de março de 2012 11:41
- Marcado como Resposta WCA - Beginner Developer quinta-feira, 8 de março de 2012 04:28
-
terça-feira, 6 de março de 2012 00:52WCA tente acompanhar um dos tópicos criados, ambos possuem repostas que possa te ajudar com sua questão:
http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/fe1b9342-69e5-487a-8f4d-4f992739c6b8/Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/ -
terça-feira, 6 de março de 2012 11:42
WCA,
Se você estiver utilizando o SQL Server 2008 poderá utilizar o comando Merge, através dele você tem a possibilidade de realizar este tipo de verificação em conjunto com os comandos Insert, Update e Delete.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

