Bonjour,
Je n'arrive pas à trouver sur le net la requête pour compter le nombre de lignes d'une procédure stockée?
Bonjour,
Je n'arrive pas à trouver sur le net la requête pour compter le nombre de lignes d'une procédure stockée?
Une petite recherche m'a emmené sur cette requête, qui fonctionne bien sur SQL Server 2008 R2:
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 select t.sp_name, sum(t.lines_of_code) - 1 as lines_ofcode, t.type_desc from ( select o.name as sp_name, (len(c.text) - len(replace(c.text, char(10), ''))) as lines_of_code, case when o.xtype = 'P' then 'Stored Procedure' when o.xtype in ('FN', 'IF', 'TF') then 'Function' end as type_desc from sysobjects o inner join syscomments c on c.id = o.id where o.xtype in ('P', 'FN', 'IF', 'TF') and o.category = 0 and o.name not in ('fn_diagramobjects', 'sp_alterdiagram', 'sp_creatediagram', 'sp_dropdiagram', 'sp_helpdiagramdefinition', 'sp_helpdiagrams', 'sp_renamediagram', 'sp_upgraddiagrams', 'sysdiagrams') ) t group by t.sp_name, t.type_desc order by 1
Bonjour,
Dans quel but avez-vous besoin de connaître cela ?
@++
Je fais une auto-formation sur les procédure stockées et je me suis posé cette question ce matin
mais l'instruction
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 ALTER PROCEDURE dbo.StoredProcedure2 @Region nvarchar(50), @Name nvarchar (50), @Order int AS SELECT COUNT (*) (SELECT DISTINCT TOP 5 Pr.ProductName,City,OrderID FROM Customers Cu,Categories Ca,[Order Details] ordd,Products Pr INNER JOIN Categories ON Categories.CategoryID=Pr.CategoryID WHERE cu.Region= @Region AND cu.ContactName=@Name AND ordd.orderID=@Order ) ; /*@Name = Elizabeth Lincoln */ /*@Region = BC */ /*@Order = 10410 */ RETURNne renvoie pas le nombre de lignes de la procédure
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT COUNT (*)
exécuté seul retourne 1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT COUNT(*)
Il s'agit d'une fonction d'aggrégation, pas d'une fonction pour compter les lignes de code d'une procédure stockée.
Ensuite avec un SELECT DISTINCT TOP 5, vous obtiendrez toujours au plus 5 lignes, sauf si vous utilisez l'option WITH TIES.
@++
il faut utiliser quelle instruction pour connaitre le nombre de lignes du tableau de la requête
Un truc n'est pas clair je crois..
Voulez-vous compter le nombre de ligne renvoyées par la procédure stockée ou bien le nombre de ligne que contient le code de cette procédure ?
Kropernic
le nombre de lignes contenu par le tableau résultant
Utilisé @@rowcount dans un paramètre output ?
Kropernic
Encore une fois :
Avec un SELECT DISTINCT TOP 5, vous obtiendrez toujours au plus 5 lignes, (sauf si vous utilisez l'option WITH TIES, ce qui n'est pas votre cas)
@++
Merci beaucoup, ça marche très bien:
Code : Sélectionner tout - Visualiser dans une fenêtre à part RETURN @@rowcount
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager