Gibt es ein Dienstprogramm, mit dem die Gesamtzahl der vom Benutzer erstellten Stored Procedure, Function, Views in einer Datenbank gezählt werden kann?SQL Server SP, Funktion, Anzeigen des Quellzeilenzählers
Antwort
für SQL Server 2005 und 2008
Dies umfasst alle Code einschließlich Leerzeilen und Leerzeilen Hinter, aber nicht die letzte Zeile (kein CRLF). Es sind also Mittelwerte ... aber es wäre sowieso immer eine Annäherung.
WITH CRLF AS
(
SELECT
CHARINDEX('
', definition) AS CRLF,
SM.[object_ID]
FROM
sys.sql_modules SM
WHERE
OBJECT_NAME([object_ID]) not in ('fn_diagramobjects', 'sp_alterdiagram', 'sp_creatediagram', 'sp_dropdiagram', 'sp_helpdiagramdefinition', 'sp_helpdiagrams', 'sp_renamediagram', 'sp_upgraddiagrams', 'sysdiagrams')
UNION ALL
SELECT
CHARINDEX('
', definition, C.CRLF + 2),
SM.[object_ID]
FROM
sys.sql_modules SM
JOIN
CRLF C ON SM.[object_ID] = C.[object_ID]
WHERE
CHARINDEX('
', definition, C.CRLF + 2) > C.CRLF
)
SELECT
COUNT(*)
FROM
CRLF
OPTION
(MAXRECURSION 0)
Edit: Sie OBJECTPROPERTY(SM.[object_ID], 'IsMSShipped') = 0
benötigen oder explizit Ausschlüsse für Diagrammcode usw.
Edit 2:
Von anderen Lösung in otehr Antwort, korrigiert nicht geben "-1" für Check-Einschränkungen und die gleichen Filter/Typen anwenden
select t.sp_name, sum(t.lines_of_code) as lines_ofcode, t.type_desc
from
(
select o.name as sp_name,
(len(c.text) - len(replace(c.text, char(13), ''))) 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 ('V', 'P', 'FN', 'IF', 'TF', 'TR')
--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
COMPUTE SUM (sum(t.lines_of_code))
Sie alle geben hier die gleichen Ergebnisse auf mehreren Datenbanken. zB 4607 für eine SQL Server 2005 SP2 ReportServer Datenbank ...
Nicht, dass ich weiß, aber Sie könnten durch die Sachen in sysobjects schauen und sp_helptext
auf jedem proc ausführen und die Zeilenschaltungen anzeigen und zählen.
Wenn Sie eine nicht CTE basierte Lösung, die Sie so etwas tun könnte:
select sum(newlines) from ( select newlines = (datalength(definition) - datalength(replace(definition, ' ', ' ')))/2 from sys.sql_modules ) as a
- 1. wie das passiert SP sql server
- 2. SQL SP läuft langsam
- 3. SQL Server Primärschlüssel anzeigen
- 4. Optimierung SQL SP
- 5. Sql Server 2005 - Rückgabe von GUID aus SP
- 6. SQL Server 2005 Verbindungs Ergebnisse von zwei verschiedenen sp wie
- 7. einen SP Rückgabewert einer Variablen in SQL Server Set
- 8. SQL Server SP - Parameter für "IN" Array-Liste übergeben?
- 9. SQL Server Profiler - Dynamische Sql anzeigen
- 10. SQL Server: Aggregat Funktion Dilemma
- 11. SQL Server: anzeigen Zeilen als Spalten/Pivot
- 12. Integrierte Decode-Funktion in SQL Server 2008
- 13. DECODE() -Funktion in SQL Server
- 14. SQL Server AGGREGATE Funktion C#
- 15. SQL Server Aggregat Funktion Abfrage
- 16. newid() innerhalb SQL Server-Funktion
- 17. SQL Server-deterministische benutzerdefinierte Funktion
- 18. Anzeigen von URLs aus SQL Server
- 19. Sortierte Hierarchiezeilen im SQL Server anzeigen?
- 20. SQL Server CE 2.0 anzeigen/ändern?
- 21. ACCESS Jet SQL INT() -Funktion -> SQL Server-Funktion
- 22. Anzeigen des Codes einer Python-Funktion
- 23. einen SQL-SP mit Regex Aufräumen
- 24. MS SQL SP - Mit EXEC-Recordset arbeiten
- 25. SQL-Abfrage zum Anzeigen des nächsten Datums
- 26. Übertragen des Inhalts einer Variablen in SQL Server 2k5
- 27. Fehlercode 1048 während des SP-Aufrufs festgestellt
- 28. Neue Installation von Tridion 2011 SP CMS-Server gibt Fehler
- 29. MVC EF4 SP Roolback
- 30. Abrufen des aktuellen Datums in SQL Server?
irgendwie meine Lösung ist mit einer diff Antwort auf Ihr kommen. –
Dank gb & Sam für Ihre Antworten. Versucht http://stackoverflow.com/questions/291574/query-to-list-sql-server-stored-procedures-along-with-lines-of-code-for-each-proc. Alle drei ergeben unterschiedliche Ergebnisse. Welchen zu berücksichtigen? –
@Rajganesh: wie anders? – gbn