T-SQL: Wie werden Parameter in dynamischem SQL verwendet?

Ich habe die folgende dynamische Abfrage, die ohne die funktioniertWHERE Klausel, die erwartetUNIQUEIDENTIFIER.

Wenn ich es weitergebe, bekomme ich kein Ergebnis. Ich habe es versuchtCAST undCONVERT, aber kein Ergebnis. Ich könnte es falsch machen, kann jemand helfen?

<code>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
</code>

Antworten auf die Frage(4)

Ihre Antwort auf die Frage