Aanroep stored proc met uniqueidentifier parameter

Het lukte mij niet om vanuit de SQL Server Query Analyzer een stored procedure aan te roepen met een parameter van het type uniqueidentifier. Het ging om de parameters @MessageID en @FaultID. Beide parameters heb ik gewijzigd in type varchar(38). Vervolgens doe ik in de stored procedure een convert van varchar(38) naar uniqueidentifier.

Aanroep:
EXEC dbo.usp_insert_Message @MessageID=’9d9592bf-364a-4c3b-9e45-0bea29fe00f7′
, @FaultID=’3596ea05-0ec7-400f-ad16-a99407c48317′
, @NativeMessageID=’7901fa39-b126-4682-9c9b-f5bf8da343fa’
, @ContentType=’text/html’
, @MessageName=’genericMsgIn’
, @InterchangeID='{D8455664-EF4E-4B51-8272-D2832C719146}’
, @RoutingUrl=”
, @MessageData= ‘…’

De aangeroepen stored procedure had de volgende signature:
CREATE PROCEDURE [dbo].[usp_insert_Message]
(
@MessageID uniqueidentifier
,@FaultID uniqueidentifier
,@NativeMessageID varchar(256)
,@ContentType varchar(128)
,@MessageName varchar(50)
,@InterchangeID varchar(256)
,@RoutingUrl varchar(50)
,@MessageData varchar(max)
,@Debug bit = 1
)

Dit is veranderd in:
CREATE PROCEDURE [dbo].[usp_insert_Message]
(
@MessageID varchar(38)
,@FaultID varchar(38)
,@NativeMessageID varchar(256)
,@ContentType varchar(128)
,@MessageName varchar(50)
,@InterchangeID varchar(256)
,@RoutingUrl varchar(50)
,@MessageData varchar(max)
,@Debug bit = 1
)

De conversie statements zijn als volgt:
SET @MessageIdConverted = convert(uniqueidentifier, @MessageID)
SET @FaultIdConverted = convert(uniqueidentifier, @FaultID)

Leave a Reply

Your email address will not be published. Required fields are marked *