Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como verificar se o parâmetro de uma procedure existe em uma tabela?

Usando a InclusaoVendedor01 como exemplo. Se eu quisesse saber se o parâmetro @MATRICULA existe na tabela de vendedores?

Tentei adicionar um IF da seguinte: IF @MATRICULA exists IN (SELECT * FROM [TABELA DE VENDEDORES]) , mas retorna erro.

1 resposta
solução!

Olá Mario, tudo bem? Nesse caso você deseja saber se o valor que está no parâmetro @MATRICULA tem alguma coluna com o mesmo nome é isso? Bem se for isso, então você precisar utilizar a propriedade INFORMATION_SCHEMA, podendo ser da seguinte forma:

USE [SUCOS_VENDAS];
GO
CREATE PROCEDURE BuscarCampo1 @MATRICULA  VARCHAR(50)
AS
IF EXISTS(SELECT * FROM [SUCOS_VENDAS].INFORMATION_SCHEMA.COLUMNS 
            WHERE UPPER(TABLE_NAME) = UPPER('TABELA DE VENDEDORES')
            AND  UPPER(COLUMN_NAME) = UPPER(@MATRICULA))
BEGIN        
SELECT 'EXISTE!!!'
END 
GO

Nesse, caso se a coluna informada existir realmente na tabela, será retornado a resposta "EXISTE!!!", e para executar essa Stored Procedure você precisa executar o comando:

EXEC [SUCOS_VENDAS].[dbo].[BuscarCampo1] @MATRICULA = 'NOME';

Espero ter ajudado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software