¿Cómo crear un parámetro de selección múltiple con un identificador único?

Estoy desarrollando un archivo RDL SSRS 2008 R2. Ahora, estoy tratando de agregar un parámetro de informe que debería ser una selección múltiple. Anteriormente, he trabajado con parámetros de selección múltiple pero siempre han sido tipos de datos de CHARACTER antes. Así que en mi conjunto de datos principal mi código era:

;WITH Cte AS 
( 
    SELECT 
        1 as id, 
        CAST('<M>' + REPLACE( (select @IncidentType),  ',' , '</M><M>') + '</M>' AS XML) AS Names 
) 
SELECT 
    id, 
    Split.a.value('.', 'VARCHAR(MAX)') AS Names
INTO #incident_types     
FROM Cte 
CROSS APPLY Names.nodes('/M') Split(a)

(Y en mi archivo RDL, este parámetro de informe de IncidentType permite la selección múltiple)

Pero ahora, IncidentType es un tipo de datos UNIQUEIDENTIFIER. He probado la función SSRS JOIN pero esto todavía me está dando el mismo error en SSRS cuando ejecuto esto:

An error has occurred during report processing. (rsProcessingAborted)
Query execution failed for dataset 'Incidents'. (rsErrorExecutingCommand)
Conversion failed when converting from a character string to uniqueidentifier. 

¿Cómo puedo codificar esto pasando varios identificadores únicos?

Probé la siguiente solución que publicaste:

CAST(Split.a.value('.', 'VARCHAR(MAX)') AS UNIQUEIDENTIFIER) AS Names

Pero esto me dio este error ahora:

Msg 8169, Level 16, State 2, Line 62
Conversion failed when converting from a character string to uniqueidentifier.

En la parte superior de mi sproc tengo:

declare
    @FacilityID varchar(MAX) = null,
    @ProgramID uniqueidentifier = null,
    @ServiceDateStart smalldatetime = null,
    @ServiceDateEnd smalldatetime = null,
    @IncidentType varchar(MAX) = null

SET @IncidentType = '864EA130-F36B-4958-B51F-EE9DBD35D804,671A8EB3-8298-40DB-BD66-93309904E463,ACA1EB55-3D66-467B-8388-CC42FCFB00F3
SET @FacilityID = '83B465B8-28DD-4F37-9F2D-A4D5E38EE7FB,3EC657F7-655F-43FB-8424-2A8914E7C725,B2064474-5C9B-4884-B1D7-4FCE1C804DF7'

Pero la línea que causa este error es:

   AND (@IncidentType is NULL OR event_definition_rv.event_definition_id in (SELECT Names FROM #incident_types))

Porque puedo ejecutar estas líneas sin errores:

select * from #incident_types
select * from #facilities

Respuestas a la pregunta(2)

Su respuesta a la pregunta