Comment puis-je get une sortie de procédure stockée dans une variable à l'intérieur d'une fonction dans T-SQL?

J'ai une tâche qui ne peut être accomplie qu'en construisant un QUERY à l'exécution et en l'exécutant avec sp_executesql. Le résultat doit être une valeur booleanne (entier 0/1) que je dois returnner à la suite de la fonction.

La seule façon de capturer la sortie d'un SP est la requête "INSERT INTO [table] EXECUTE [sp]", mais les fonctions l'interdisent.

Des idées pour surmonter cela?

sp_executesql vous permet de passer des parameters, mais aussi de déclarer les parameters comme étant en sortie. Jetez juste un coup d'oeil à cet exemple simple qui n'est pas très dynamic, mais montre comment fonctionnent les parameters de sortie de sp_executesql

 declare @sql nvarchar(max) declare @user sysname select @sql = 'SELECT @user = SYSTEM_USER' exec sp_executesql @sql, N'@user sysname OUTPUT', @user OUTPUT select @user