数据库项目

来源:互联网 发布:淘宝用假单号骗货 编辑:程序博客网 时间:2024/05/16 14:11

 

数据库项目用于保存SQL脚本、查询和存储过程。数据库项目常常是Visual Studio中开发人员不太知道的一个特性,除非有人告诉他们。不要混淆数据库项目与SQLServer项目(详见本章下一节),数据库项目用于保存SQL脚本,而SQL Server项目用于保存在Microsoft SQL Server上运行的CLR托管代码。

如果当前没有使用数据库项目保存脚本和存储过程,就将它们保存在文件中,再将它们应用于SQL Server。如果这么做很危险,可以只把最初的副本保存在SQL Server中。

为保存存储过程和其他SQL脚本而使用数据库项目,一个很显著的优点是项目可以包含在VisualStudio解决方案中。这样,就很容易在主项目文件和数据库项目之间切换,来访问存储过程了。另外,在搜索时,项目很容易包含在搜索结果中。最后一个优点是,可以集成Visual Studio支持的源代码控制,在存储过程和SQL脚本上进行版本控制。

在使用存储过程时,一种方法是把存储过程放在与数据库域对象相关的文件夹中。例如,如果有几个与地址相关的存储过程,就可以创建一个Address文件夹,把这些存储过程存放在该文件夹中。一定要注意,项目提供了一个文件夹层次结构,可用于给脚本分类,一旦脚本运行起来,应用于数据库,这种分类特性就会丧失。在开发过程中,无论存储过程是否位于有意义的文件夹层次结构中,SQL Server都没有文件夹的概念,所以给SQL Server添加了内容后,都只会看到一个大大的列表。

刚才讨论的是把什么代码放在哪个文件夹中,另一个要考虑的重要问题是:是否有非存储的过程脚本也存放在项目中,例如,创建/删除表的脚本或刷新表中数据的脚本。如果决定把它们也存储在数据库项目中,而且将它们存放在存储过程所在的文件夹下,它们就有可能在不正确的时间运行。这是以前在晚上测试备份的一个绝妙方式。这是如何发生的?数据库项目的一个特性是,它可以选择文件夹中的一项,单击“run”“run on”,在目标数据库上运行脚本。如果把删除/创建脚本混入文件夹,而不知情的团队成员选择所有的项,在数据库上运行它们时,会认为自己只是把存储过程添加到数据库中。他们在发现备份时会非常惊讶!