Bonjour, j'utilise:
Sybase Adaptive Server Enterprise version: 12.5.4


est ce qu'il existe en SQL l'équivalent des fonctions C# 'try - catch'

je m'explique, voici mon code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
drop procedure test
go
create procedure test
as
declare @cur int, @max int, @a float
begin
set @cur = -10
set @max = 10
 
while @cur < @max
begin
set @a = convert(float, 1 / @cur) <----- ici cela va planter lorsque @cur sera égale a zéro.
 
print '%1!', @cur
select @cur = @cur + 1
end
end
go
 
exec test
go
je souhaite que la procédure ne s'arrête pas lorsque @cur sera égale à zéro
exemple du nouveau code (il y a du c# pour vous faire comprendre)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
drop procedure test
go
create procedure test
as
declare @cur int, @max int, @a float
begin
set @cur = -10
set @max = 10
 
while @cur < @max
begin
try <--------- instruction c# (je cherche l'équivalent en sql)
begin
set @a = convert(float, 1 / @cur)
print '%1!', @cur
end
catch <--------- instruction c# (je cherche l'équivalent en sql)
print 'conversion impossible'
 
select @cur = @cur + 1
end
end
go
 
exec test
go