我有一个数据库包含大量的逻辑,我必须维护它。我需要一种方式来知道,至少在改变某些东西之后,所有东西都可以工作如何在更改列数据类型后测试数据库代码?
例如,我想知道是否所有的存储过程和触发器改变列的类型后仍然工作。
有没有办法做到这一点?
在此先感谢。
我有一个数据库包含大量的逻辑,我必须维护它。我需要一种方式来知道,至少在改变某些东西之后,所有东西都可以工作如何在更改列数据类型后测试数据库代码?
例如,我想知道是否所有的存储过程和触发器改变列的类型后仍然工作。
有没有办法做到这一点?
在此先感谢。
你可以迭代所有的procedures, functions etc and invoke them in TSQL,或运行我的utility checktsql(WinForms应用程序)。
但是我没有分析如何检查触发器。 (我怎么能忘记?)
当我们将有触发器检查版本?我打算将你的工具合并到我们常见的应用程序中:) –
无论如何,我在想如果不修改ALTER过程来查看命令是否成功。 –
触发器不是微不足道的。请记住,只能通过INSERT,UPDATE,DELETE调用它们。这意味着您的数据(Ins,Upd)需要通过定义的任何检查(非标识列,CHECK&FK约束,UNIQUE索引和约束)或记录级别检查以确保参考完整性(Del) – devio
你的问题并不十分清楚:在更改表列的数据类型后,你是否问如何测试数据库代码(我假设你的意思是存储过程/函数?)?或者如何找到所有对被更改对象的引用?在第一种情况下,您正在询问有关测试的内容,第二种情况下您正在询问是否确定依赖关系。 – Pondlife
@Pondfile:我在问测试(编译),如果不够清楚,很抱歉。 –
感谢您的澄清,我更新了这个问题,让您更清楚地询问您的测试。简而言之,您需要开发一套测试脚本;不幸的是,用于测试数据库代码的工具通常不像其他类型的代码那样发达,但是对此有许多[问题](http://stackoverflow.com/search?q=sql-server+unit+test)网站关于它,也许你可以从他们那里得到一些想法。 – Pondlife