验证所有存储过程

Kim*_*sen 3 sql-server stored-procedures

如何验证 SQL Server 数据库中的所有存储过程?在删除或更改某些表/视图等之后,我需要验证所有存储过程是否仍然有效。

Aar*_*and 5

不,在 SQL Server 中没有内置的方法可以做到这一点。正如玛丽安所说,您可以重新编译所有程序以确保它们仍然有效,但这并不能证明它们仍然有效(并且不要忘记延迟名称解析使这种验证无论如何都不够出色)。但是,您可以使用其他工具(例如SQL Server Data Tools (SSDT))来帮助促进单元测试。

就像更改应用程序一样,如果更改架构,则需要测试这些更改。单元测试的自动化程度取决于模式的复杂性、使用应用程序以及存储过程结果可能的排列数量(包括不同参数或不同参数值的显式输入,以及隐式输入,例如一天中的时间、系统状态、特定的静止数据等)。您必须记住,在某些情况下,您希望存储过程输出保持不变,但在其他情况下,您实际上希望它有所不同。

一些可能有用的链接(从一个关于测试单个存储过程的 SO 问题中挑选出来的一对):