我需要提供有多少行代码的统计数据 (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 管理工具将对象编写为文件的脚本,它会在其中获得一些额外的内容,以便在对象存在时首先进行删除检查。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top