Ho la seguente query dinamica che funziona correttamente senza la clausola WHERE
, che è in attesa di UNIQUEIDENTIFIER
.T-SQL: come utilizzare i parametri in SQL dinamico?
Quando lo inoltro, non ottengo un risultato. Ho provato CAST
e CONVERT
, ma nessun risultato. Potrei sbagliarmi, qualcuno può aiutarti?
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
ho provato questo, non funziona dandomi l'errore di followig "La procedura si aspetta parametro '@parameters' di tipo 'ntext/nchar/nvarchar'." –
Rendi la stringa NCHAR aggiungendo una "N": EXECUTE sp_executesql @sql, N '@ p UNIQUEIDENTIFIER', ... –