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.
@++![]()
Partager