获取 SQL Server 中代码行总数 (LOC) 的最简单方法是什么?
-
09-06-2019 - |
题
我需要提供有多少行代码的统计数据 (LOC)
与一个系统相关联。应用程序部分很简单,但我还需要包含驻留在 SQL Server 数据库中的任何代码。这适用于存储过程、函数、触发器等。
我怎样才能轻松获得该信息?可以(准确地)完成吗 TSQL 通过查询系统 tables\sprocs
, , ETC?
解决方案
在 Management Studio 中,右键单击您想要其行数的数据库...选择“任务”->“生成脚本”,您可以在“脚本向导”中选择脚本选项来包含或排除对象,当您将其设置为您喜欢的方式时,它可以生成到新的查询窗口
其他提示
只需从 syscomments 中选择所有文本并计算有多少行。文本列是文本,你在 Management studio 中看不到它,所以我会编写一个程序或 power shell 脚本,如下所示:
$conn = new-object System.Data.SqlClient.SqlConnection("Server=server;Database=database;Integrated Security=SSPI")
$cmd = new-object System.Data.SqlClient.SqlCommand("select text from syscomments", $conn)
$conn.Open()
$reader = $cmd.ExecuteReader()
$reader.Read() | out-null
$reader.GetString(0) | clip
$reader.Close()
$conn.Close()
粘贴到具有行数的编辑器中,就完成了。
就个人而言,您可能只是使用 SQL Server 管理工具将对象编写为文件的脚本,它会在其中获得一些额外的内容,以便在对象存在时首先进行删除检查。
不隶属于 StackOverflow