quarta-feira, 7 de novembro de 2018

Stored Procedure dinâmica - SQL SERVER

Descrição da tabela - tblNome

id - int - Primary key
Nome - nvarchar(30)
Idade - int

id nome idade
2 Rita 35
3 Carla 40
4 Julia 20
5 Mariana 19
6 Marina 21
9 Regina 36
10 Paula 22

CREATE PROCEDURE BuscaNomeIdade
    @NOME nvarchar(30),
    @IDADE nvarchar(3)
    AS
        DECLARE @SQl varchar(300)
SET @SQL = 'SELECT id, nome, idade FROM tblNome WHERE 1 = 1'
IF (@Nome IS NOT NULL)
BEGIN
    SET @SQl = @SQl + ' AND Nome = ''' + @NOME + ''''
END

IF (@idade IS NOT NULL)
BEGIN
    SET @SQl = @SQl + ' AND idade = ' +  @IDADE
END
EXECUTE(@SQL)
--PRINT(@SQL)
GO

Executar
EXEC BuscaNomeIdade 'Rita', 35

EXEC BuscaNomeIdade 'Rita', NULL

EXEC BuscaNomeIdade NULL, 35


EXEC BuscaNomeIdade NULL, NULL