Vérification si le paramètre UTD a des valeurs dans la procédure stockée

Je veux vérifier si un paramètre avec un certain type de table défini par l'user a des valeurs ou est NULL, mais je reçois l'erreur suivante

Msg 137, Level 16, State 1, Procedure SearchByWord, Line 63 [Batch Start Line 7] Must declare the scalar variable "@Words". 

La procédure stockée est la suivante (uniquement la partie pertinente)

 CREATE PROCEDURE [dbo].[SearchByWord] ( @Words Word_List READONLY ) AS BEGIN SET NOCOUNT ON; -- some DECLARE and SET IF @Words IS NOT NULL BEGIN -- stuff END -- more stuff END 

Le type de table définie par l'user est

 CREATE TYPE [dbo].[Word_List] AS TABLE( [element] [varchar](512) NULL ) 

Utilisation

 IF EXISTS(SELECT * FROM @Words) 

ne pas

 IF @Words IS NOT NULL 

Le paramètre table value sera toujours présent et ne peut pas être NULL comme un paramètre scalaire.

Si vous appelez exec [dbo].[SearchByWord] sans rien passer pour le paramètre, le résultat est que @Words sera vide.