je suit les lignes de code dans ma fonction définie par l'utilisateur:Utilisez Essayez Catch Block dans UDFs dans SQL Server
declare @annualStr varchar(30)
declare @annual float
begin try
set @annualStr = dbo.GetXMLValues(@businessId,@id)
set @annual = convert(float,isnull(@annualStr,'0'))
end try
begin catch
set @annual = 0
end catch
La valeur provient de dbo.GetXMLValues
peut être une valeur varchar
donc je dois utiliser bloc catch try pour convertir la valeur en float
..
Mais il jette une erreur disant .. il est incorrect d'utiliser des blocs catch try UDF
Pourquoi ?? Et ce qu'il faut faire pour convertir varchar
valeur à float
quand il est inconnu
Le Pourquoi? N'est pas vraiment répondable sauf comme "parce qu'ils ne sont pas pris en charge par le produit" –
duplication possible de [Essayez \ _Convertir pour SQL Server 2008 R2] (http://stackoverflow.com/questions/17941035/try-convert-for -sql-server-2008-r2) –