Passage des valeurs par défaut des paramètres aux fonctions de table valorisées
create function Xtest
(@d1 varchar(3)=null
,@d2 varchar(3)=null)
returns table
as
return
with code_list(code_pattern)
as
(
select x.code_pattern
from (values (@d1),(@d2)) as x(code_pattern)
where x.code_pattern is not null
),y
as
(
select substring(code,1,3) as code
from tblicd
where substring(code,1,3) in
(
select * from code_list
)
)
select * from y
est ma fonction qui va faire sens quand il est entièrement terminé. Si j'essaie d'exécuter cette requête et je n'ai pas l'approvisionnement de deux paramètres, il échouera. J'ai le même code en tant que procédure stockée et si je ne saisissez un paramètre, il fonctionne très bien et ayants droit le deuxième paramètre est null. Est-il possible que je peux passer null
que la valeur d'un paramètre si le paramètre n'est pas fourni, comme on peut le faire avec des procédures stockées?
La fonction de compilation.
source d'informationauteur wootscootinboogie
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas omettre les paramètres lorsque vous appelez une fonction. Ce n'est pas quelque chose que vous faites mal dans la syntaxe, c'est tout simplement pas pris en charge par SQL Server. Procédures stockées ont des paramètres facultatifs, mais les fonctions ne sont pas.
Vous pouvez, cependant, l'offre
default
:Ou dans ce cas, si vous connaissez les valeurs par défaut sont
NULL
que vous pouvez faire:Aussi veuillez toujours utiliser le schéma de préfixe (dans ce cas
dbo.
) lors de la création et de référencement de n'importe quel objet, surtout fonctions.