简介
Management Studio 是在 Microsoft SQL Server 2005 Beta 2 中开发 Transact-SQL 查询的主要工具。下面的讨论将向您介绍 Management Studio Transact-SQL 编辑工具,重点介绍它的一些用于 Transact-SQL 开发的既有趣又引人注目的新功能。您还可以了解到 Management Studio 与 SQL Server 2000 Query Analyzer 的区别(以及对后者的改进)。您应该已经熟练掌握如何启动和操作 SQL Server 2005 Management Studio,如何连接到一个 SQL Server 2005 实例,以及如何操作 Management Studio 中的各种窗口。
SQL Server 2005 Beta 2 Management Studio 还在不断改进,在 SQL Server 2005 最终发布之前,会出现新的功能,也会对一些功能进行更改。在下面的讨论中,提及的 Management Studio 都是指随 SQL Server 2005 Beta 2 安装的版本,而提及的查询分析器都是指随 SQL Server 2000 安装的版本。
Management Studio 中查询编辑的通用功能
Management Studio 集成了所有 SQL Server 数据库产品中的查询编辑。当您通过 New Query 工具栏按钮或通过 File/New Query 菜单启动新的查询时,您就立即会发现可以创建和编辑 SQL Server 查询、分析服务查询和 SQL Mobile 查询。当您使用 SQL Server 查询时,Management Studio 会调用 Transact-SQL 代码编辑器。当您使用分析服务器查询时,Management Studio 会调用 MDX、DMX 和 XMLA 编辑器;当您使用 SQL Mobile 查询时,它会调用包含合适的 Transact-SQL 语言子集的特定代码编辑器。本文重点介绍使用 Management Studio 编辑 Transact-SQL 查询。
在重点介绍 Transact-SQL 查询之前,注意到与查询分析器相比 Management Studio 具有一些显著不同的通用功能是非常有用的。。Management Studio 比较显著的一个功能是您现在可以在连接模式或断开连接模式下进行编辑:编辑查询不需要您连接到服务器。当您启动查询时,系统会提示您建立连接,但如果您拒绝也可以继续进行编辑。您甚至可以在编辑会话期间断开或更改连接,而不必保存和重新打开查询。这样,您就可以离线开发代码,或者在多个 SQL Server 上相继运行代码。
当您在连接模式下使用查询时,Management Studio 会使用 SQL Native Client 连接到 SQL Server、分析服务器或 SQL Mobile。虽然 Management Studio 在很多方面类似于 Microsoft Visual Studio,但它是一个使用 Visual Studio 托管代码开发的独特工具。Management Studio 支持创建和编辑 SQL Server、分析服务和 SQL Mobile 查询。您必须使用 Visual Studio 开发 SQL CLR 代码。
您也可以在 Management Studio 中编辑纯文本文件。例如,如果您通过 File 菜单调用 Open 对话框,打开一个文本文件,则 Management Studio 不会提示您建立连接,而是打开一个纯文本编辑器。您还可以间接调用 XML 编辑器,这在后面的分析查询中会进行讨论。
管理 Transact-SQL 查询
在 Management Studio 中编辑 Transact-SQL 代码有两种基本方式。可以使用 Management Studio Object Explorer 中的 Assisted Editor 直接编辑数据库 Transact-SQL 代码对象(比如存储过程、触发器、视图和函数),也可以编辑保存为磁盘文件的 Transact-SQL 脚本。
直接编辑数据库代码Management Studio 的 Object Explorer 是交互式编辑 Transact-SQL 代码的最好选择,在编辑 Transact-SQL 查询的时候,大多希望它一直可用,不管是停靠还是隐藏。您可以使用它从当前连接启动新的查询,而不必在 Connection Dialog 中填写连接信息,方法是下拉到用户数据库,右键单击数据库名称,并选择 New Query 。
通过 Object Explorer,您也可以使用一个称为 Assisted Editor 的新工具交互式地直接编辑 Transact-SQL 代码。当您在 Object Explorer 中下拉到 Programmability 节点并右键单击其中一个 Programmability 节点时,出现的弹出菜单中的 New 和 Modify 选项会调用合适的 Assisted Editor。Assisted Editor 也可以用于存储过程、函数、触发器和视图。例如,图 1 显示了使用 Assisted Editor 编辑 AdventureWorks 示例数据库中的存储过程。
图 1. Assisted Editor 也可以用于直接编辑 Transact-SQL 代码对象。如果您使用 Assisted Editor 更改数据库代码对象,则编辑时不需要使用磁盘文件,因此既不需要项目或解决方案,也不需要源代码控制。Assisted Editor 控制 Transact-SQL 代码对象的头部,并根据您的输入创建和修正头部。然后,您可以使用 Management Studio Transact-SQL 代码编辑器自由地编辑代码对象体。
注 如果将注释或特殊格式放在 Transact-SQL 代码对象的头部中,当操作导致 Assisted Editor 重新编写该行时,Assisted Editor 会将它们删除。Management Studio 会对您提出警告,并为您提供在查询窗口中编辑代码对象的选项,这样就可以保存这些注释。 当您使用 Object Explorer 在 Assisted Editor 中创建新的 Transact-SQL 代码对象或修改现有的 Transact-SQL 代码对象时,您会在 Management Studio 菜单栏中看见一个新的 Assisted Editor菜单。通过 Assisted Editor 菜单,您可以设置对象的权限,创建或修改对象的扩展属性,编写 Assisted Editor 操作脚本,以及安排对象的创建或更改。 通过 Assisted Editor 中新的 Extended Properties 页,您可以输入长文本描述。当 Extended Properties 页处于活动状态时,单击 Value 文本框右边的 browse 按钮,会出现一个新的数据输入对话框来让您输入长描述。 请记住,使用 Assisted Editor 编辑数据库代码对象是直接且交互式的。当您保存在其中所做的更改时,它们就会立即应用到数据库中。Management Studio 也提供基于文件的编辑工具,您可以通过它开发属于更改-控制操作的 Transact-SQL 代码对象。 脚本文件编辑
除了交互式编辑外,Management Studio 还允许您单独编辑来自磁盘或通过 SQL Server 解决方案和项目的 Transact-SQL 脚本文件。与查询分析器一样,您可以创建和更改单个脚本文件,以及将新查询保存为隔离的脚本文件。还有一处与查询分析器一样,您可以在编辑前将这些单个文件签出源代码控制系统,完成后再将它们重新签入。Management Studio 的一个新功能是您可以将 Transact-SQL 脚本文件组织到解决方案和项目中,并将这些解决方案和项目与源代码控制相集成。
Management Studio 解决方案将多个项目组织成单个工作单位。创建的每个项目只与一种查询类型相关联:SQL Server、分析服务或 SQL Mobile;而每个解决方案至少要有一个项目。在特定的项目中,可以存储的项包括连接信息、查询脚本文件和各种各样的文件。
注 Management Studio 解决方案和项目与 Visual Studio 解决方案和项目相似但不兼容。 甚至当您在项目外建立新的 SQL Server 查询时,Management Studio 也会启动一个新的没有项目的默认解决方案,称为“Solution1”。如果您不添加项目,Management Studio 仍然会询问您是否保存该解决方案 Management Studio。然而,创建新解决方案的最好方式是从创建新的项目开始。只需在 File 菜单中选择 New ,然后选择 Project 。这样会弹出一个对话框,让您选择新项目的类型、名称和解决方案名称。如果您想在一个解决方案中包含多个项目,请确保解决方案的名称与项目名称不一样,如图 2 所示。 图 2. 当创建新的项目时,可以命名新的解决方案,也可以指定一个自定义目录。请注意,一次只能有一个解决方案,但任何特定的解决方案可以包含多个任意项目类型的项目。有关解决方案和项目的更多信息,请参见 SQL Server 2005 Beta 2 Books Online 中的“Introduction to Solutions, Projects, and Items”。
如果您的源代码控制系统为您提供了一个插件






