Tengo la siguiente consulta dinámica que está funcionando bien sin la cláusula WHERE
, que está esperando UNIQUEIDENTIFIER
.T-SQL: ¿Cómo usar los parámetros en SQL dinámico?
Cuando lo transfiero, no obtengo un resultado. Intenté CAST
y CONVERT
, pero no produjo ningún resultado. Puede que lo esté haciendo mal, ¿alguien puede ayudar?
CREATE PROCEDURE [dbo].[sp_Test1] /* 'b0da56dc-fc73-4c0e-85f7-541e3e8f249d' */
(
@p_CreatedBy UNIQUEIDENTIFIER
)
AS
DECLARE @sql NVARCHAR(4000)
SET @sql ='
DECLARE @p_CreatedBY UNIQUEIDENTIFIER
SELECT
DateTime,
Subject,
CreatedBy
FROM
(
SELECT
DateTime, Subject, CreatedBy,
ROW_NUMBER() OVER(ORDER BY DateTime) AS Indexing
FROM
ComposeMail
WHERE
CreatedBy = @p_CreatedBy /* <--- the problem is in this condition */
) AS NewDataTable
'
EXEC sp_executesql @sql
intenté esto, no funciona, dándome el siguiente error "El procedimiento espera el parámetro '@parameters' de tipo 'ntext/nchar/nvarchar'." –
Haga la cadena NCHAR agregando una 'N': EXECUTE sp_executesql @sql, N '@ p UNIQUEIDENTIFIER', ... –