Cita:
Iniciado por maldini3783
Código SQL:
Ver originalSELECT @TotalOUT=@CountryName
FROM EC_DashBoard.dbo.DB_TemporalDataPMO WHERE idstate = @IdState AND @CountryName=@CountryName
tienes varios gaps en esta consulta primero deberia de quedar asi:
Código SQL:
Ver originalDECLARE @query nvarchar(MAX)
SET @query=' Select @TotalOUT=count( ' + CHAR(39) + @CountryName + CHAR(39) + '
FROM EC_DashBoard.dbo.DB_TemporalDataPMO WHERE idstate = @IdState and CountryName=' + CHAR(39) + @CountryName + CHAR(39)
Ahora cuando executas un sp_executesql puedes retornar un valor mira este ejemplo:
Código SQL:
Ver originalCREATE TABLE testing_paises
(
pais VARCHAR(200)
)
INSERT INTO testing_paises VALUES ('España')
GO 2
INSERT INTO testing_paises VALUES ('Mexico')
GO 5
INSERT INTO testing_paises VALUES ('Belice')
GO 3
CREATE PROCEDURE test_paises (@pais VARCHAR(200), @contador INT output)
AS
DECLARE @query nvarchar(MAX)
DECLARE @ParmDefinition nvarchar(500);
SET @query='select @contador=count(*) from testing_paises where pais=' + CHAR(39) + @pais + CHAR(39)
SET @ParmDefinition = N'@contador int OUTPUT';
EXEC sp_executesql @query,@ParmDefinition, @contador = @contador OUTPUT
RETURN @contador
DECLARE @contador INT
EXEC test_paises 'Mexico',@contador output
SELECT @contador
fijate como se retornan los valores y como lo estas haciendo tu, para mayor referencia aqui la documentacion oficial del
sp_executesql