Visual Studio对数据库开发有着越来越紧密的联系。在Visual Studio 2005之前版本中没有专门的Visual Studio数据库开发环境。像大多数喜爱TSQL数据库开发的人员可能需要使用Visual Studio的编译功能进行TSQL同步代码编写,但在这期间的开发你可能会用到一些其它工具。 Visual Studio 2010的出现则改变了这一切。
本文将演示在Microsoft Visual Studio 2010中的数据库开发功能。
This article is based on features in the Visual Studio Ultimate Edition Beta 2. I'm not only using a Beta version, I'm using a high-end license version. Though a second Beta will likely have feature parity with a product release, not all licenses will have all the features I demonstrate in this article.
本文主要是基于Visual Studio Beta 2功能的高级版,笔者使用的是一个高端许可证版本。在本文中将演示这个版本中数据库的大多数功能。同时,下面介绍的一些功能已经在Visual Studio 2010中进行过具体实践。
在Microsoft Visual Studio 2010中创建项目
在Microsoft Visual Studio 2010中有多个SQL Server项目模板
图1:SQL Server数据库项目模板
CLR和数据层的发展已经超出了本文的范围。本文会更专注于传统的TSQL的使用,SQL Server 2008数据库项目和SQL Server 2008服务器项目的开发模板。数据库的项目和服务器项目在同一模板中。 Server项目包括一些额外的服务器,如服务端点,服务器帐户的具体项目,并链接的服务器。数据库的项目包括一些额外的仓储项目模板。在你探讨每个项目模板时,您还会注意到,模板文件夹结构和部署选项的差异。
本文通过创建3个项目来证明模板的主要功能:
1. 创建一个空的数据项目
2. 创建一个空的服务项目
3. 导入一个AdventureWorks数据项目
编辑器功能概述
智能感知是在本文中提到的第一个功能。正如我前面提到的,在以前版本数据库开发环境中没有一个好的TSQL编译器。下面是一个简短的intellisense示范。
图2:使用智能感知
有一些技巧你在应用智能感知时了解到。正如你可能已经注意到,我在FROM子句前添加了字段。从第一次输入在SELECT部分,每个字段都是一个完全合格的模式和表名。并不需要将所有的代码都输入到架构视图中,您可以拖放到您的TSQL的报表字段当中。
代码段是另一个很好的编辑功能。以下是具体的实例。
图3:Sinppets代码
笔者总是忘记各种TSQL的标签。存储过程中创建临时表和建立数据库结构是非常普遍的。从模板创建一个项目只需要一个简单的标记声明即可。而后只需利用代码段编辑器即可。如果您在应用Visual Studio开发,改进后的编辑器功能将完成所有应用程序的开发,从数据库,通过数据层,进入核心的应用程序。一个新的编辑器是强大的,但如果没有测试数据,数据库的发展是很难的。
数据菜单
与Visual Studio 2008相比Visual Studio 2010的架构很多方面有了加强。开发人员会发现有比较多的选择来进行激活和停用操作。之的版本中,可以创建一个单独的测试项目,并可以与数据生成测试数据。而在Visual Studio 2010中数据生成计划已经得到了增强了。数据生成计划如下:
图4:数据生成计划
You can create a Data Generation Plan from the Data menu or add a Data Generation Plan from the project "Add Items" menu. Selecting the column properties and the Output allows a developer to configure what sort of data is generated in the given column. Output properties appear below.
您可以创建一个数据生成计划“添加项目”菜单。在给定的列生成选择列属性和输出允许开发什么样的数据。输出属性显示在下面。
图5:输出数据生成列
测试和调试
开发人员在部署数据库时需要做适当测试。这项计划的部署部分包括一些基本的信息配置。部署的第片断如下。
图6:部署属性
A database design often goes beyond table, view, function, and stored procedure definitions. Assumptions about case sensitivity and how NULL is handled play a large role in the behavior of the code. I think of the collective configurations as the code execution context. A lot of this information is stored in a set of Properties files. Below are the AdventureWorks project Properties.
数据库设计往往超出表,视图,函数和存储过程定义。代码作为执行上下文的集体配置,许多这方面信息是存储在属性文件集当中。下面是AdventureWorks的项目属性。
刚才我提到的配置和定制的部署方案。还有更多的部署选项,可根据Database.sqldeployment去选择。 Database.sqlsettings包含很多命令,例如:空处理,警告级别,恢复模式,和其他一般资料库。SQL Server的项目有不同的属性。正如你可能猜到一些针对服务器配置属性。下面是SQL Server项目属性。
图7:服务器属性
在Visual Studio 2010中包含一个功能丰富的SQL数据库开发项目模板和服务器。新功能包括改进的编辑器,测试,部署选项和代码分析功能。