Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/04/2011, 20h27   #1
Invité de passage
 
Inscription : mars 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 8
Points : 2
Points : 2
Par défaut quitter l'excution, RAISERROR ne fonctionne pas

hello,
J'ai une question très simple:

J'ai une procédure stocké qui a un paramètre en entrée (date), ce paramètre ne doit pas être incohérent (il ne doit pas dépassé la date du jour)
donc je voudrais savoir si y a moyen avec SQL Server 2005 de quitter une exécution en cour, j'ai essayé RAISERROR mais le problème c'est que ça ne marche pas!!
Code :
1
2
3
4
5
6
7
8
9
10
11
declare @U_STR_LOAD_DATE varchar(10);--date dans la base de données
declare @STR_LOAD_DATE varchar(10);--date sortie
declare @STR_DAY varchar(10);-- date passé par l'aapli
SET @STR_DAY = '03/25/2012'
SET @U_STR_LOAD_DATE ='04/15/2011'
IF @U_STR_LOAD_DATE = @STR_DAY 
SET @STR_LOAD_DATE = @U_STR_LOAD_DATE
IF CONVERT(DATEtime,@STR_DAY ,101)>CONVERT(DATEtime,@U_STR_LOAD_DATE ,101)
RAISERROR('Oh no a fatal error', 25, -1)
else SET @STR_LOAD_DATE = @STR_DAY
SELECT @STR_LOAD_DATE AS STR_LOAD_DATE, @U_STR_LOAD_DATE AS U_STR_LOAD_DATE, @STR_DAY  AS STR_DAY
Il me retourne le résultat du select et moi je veux qu'il arrêt l'exécution comme ci y a une erreur de syntaxe

Code :
NULL	04/15/2011	03/25/2012

Code :
1
2
3
4
Msg 2754, Level 16, State 1, Line 12
Error severity levels greater than 18 can only be specified BY members of the sysadmin role, USING the WITH LOG OPTION.
 
(1 row(s) affected)
ours_nuit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 21h20   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
declare @U_STR_LOAD_DATE varchar(10),-- date dans la base de données
        @STR_LOAD_DATE   varchar(10),-- date sortie
        @STR_DAY         varchar(10);-- date passé par l'aapli
SET DATEFORMAT MDY;
SELECT @STR_DAY = '03/25/2012', @U_STR_LOAD_DATE ='04/15/2011';
IF @U_STR_LOAD_DATE = @STR_DAY 
   SET @STR_LOAD_DATE = @U_STR_LOAD_DATE;
IF CAST(@STR_DAY AS DATETIME) > CAST(@U_STR_LOAD_DATE, DATEtime)
BEGIN
   RAISERROR('Oh no a fatal error', 16, 1) --> les erreurs utilisateur doivent toujours être en 16, 1
   RETURN;
ELSE
   SET @STR_LOAD_DATE = @STR_DAY;
SELECT @STR_LOAD_DATE AS STR_LOAD_DATE, @U_STR_LOAD_DATE AS U_STR_LOAD_DATE, @STR_DAY  AS STR_DAY;
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 10h59   #3
Invité de passage
 
Inscription : mars 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 8
Points : 2
Points : 2
Merci SQLPro,
Vous n'auriez pas un article sur ce genre de manip?

Citation:
Envoyé par SQLpro Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
declare @U_STR_LOAD_DATE varchar(10),-- date dans la base de données
        @STR_LOAD_DATE   varchar(10),-- date sortie
        @STR_DAY         varchar(10);-- date passé par l'aapli
SET DATEFORMAT MDY;
SELECT @STR_DAY = '03/25/2012', @U_STR_LOAD_DATE ='04/15/2011';
IF @U_STR_LOAD_DATE = @STR_DAY 
   SET @STR_LOAD_DATE = @U_STR_LOAD_DATE;
IF CAST(@STR_DAY AS DATETIME) > CAST(@U_STR_LOAD_DATE AS DATEtime)
BEGIN
   RAISERROR('Oh no a fatal error', 16, 1) --> les erreurs utilisateur doivent toujours être en 16, 1
   RETURN
END
ELSE
   SET @STR_LOAD_DATE = @STR_DAY;
SELECT @STR_LOAD_DATE AS STR_LOAD_DATE, @U_STR_LOAD_DATE AS U_STR_LOAD_DATE, @STR_DAY  AS STR_DAY;
A +
ours_nuit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h27.


 
 
 
 
Partenaires

Hébergement Web