que - sql consultas dinámicas
Obtener el resultado de SQL dinámico en una variable para sql-server (6)
Probablemente haya intentado esto, pero ¿son sus especificaciones tales que puede hacer esto?
DECLARE @city varchar(75)
DECLARE @count INT
SET @city = ''London''
SELECT @count = COUNT(*) FROM customers WHERE City = @city
Ejecución de SQL dinámico de la siguiente manera en Procedimiento almacenado:
DECLARE @sqlCommand nvarchar(1000)
DECLARE @city varchar(75)
SET @city = ''London''
SET @sqlCommand = ''SELECT COUNT(*) FROM customers WHERE City = @city''
EXECUTE sp_executesql @sqlCommand, N''@city nvarchar(75)'', @city = @city
¿Cómo uso el valor de la columna de conteo (*) como valor de retorno en el SP?
esto podría ser una solución?
declare @step2cmd nvarchar(200)
DECLARE @rcount NUMERIC(18,0)
set @step2cmd = ''select count(*) from uat.ap.ztscm_protocollo'' --+ @nometab
EXECUTE @rcount=sp_executesql @step2cmd
select @rcount
versión dinámica
ALTER PROCEDURE [dbo].[ReseedTableIdentityCol](@p_table varchar(max))-- RETURNS int
AS
BEGIN
-- Declare the return variable here
DECLARE @sqlCommand nvarchar(1000)
DECLARE @maxVal INT
set @sqlCommand = ''SELECT @maxVal = ISNULL(max(ID),0)+1 from ''+@p_table
EXECUTE sp_executesql @sqlCommand, N''@maxVal int OUTPUT'',@maxVal=@maxVal OUTPUT
DBCC CHECKIDENT(@p_table, RESEED, @maxVal)
END
exec dbo.ReseedTableIdentityCol @p_table=''Junk''
vMYQUERY := ''SELECT COUNT(*) FROM ALL_OBJECTS WHERE OWNER = UPPER(''''MFI_IDBI2LIVE'''') AND OBJECT_TYPE = ''''TABLE''''
AND OBJECT_NAME ='''''' || vTBL_CLIENT_MASTER || '''''''';
PRINT_STRING(VMYQUERY);
EXECUTE IMMEDIATE vMYQUERY INTO VCOUNTTEMP ;
DECLARE @sqlCommand nvarchar(1000)
DECLARE @city varchar(75)
DECLARE @cnt int
SET @city = ''London''
SET @sqlCommand = ''SELECT @cnt=COUNT(*) FROM customers WHERE City = @city''
EXECUTE sp_executesql @sqlCommand, N''@city nvarchar(75)'', @city = @city
RETURN @cnt
DECLARE @sqlCommand nvarchar(1000)
DECLARE @city varchar(75)
declare @counts int
SET @city = ''New York''
SET @sqlCommand = ''SELECT @cnt=COUNT(*) FROM customers WHERE City = @city''
EXECUTE sp_executesql @sqlCommand, N''@city nvarchar(75),@cnt int OUTPUT'', @city = @city, @cnt=@counts OUTPUT
select @counts as Counts