在 SQL Server 2005 Beta 2 中编辑 Transact-SQL 代码

在 SQL Server 2005 Beta 2 中编辑 Transact-SQL 代码 - 应用软件 - 电脑教程网

在 SQL Server 2005 Beta 2 中编辑 Transact-SQL 代码

日期:2006-06-10   荐:
简介

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 节点时,出现的弹出菜单中的 NewModify 选项会调用合适的 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”。

如果您的源代码控制系统为您提供了一个插件,则 Management Studio 将解决方案和项目与源代码控制系统相集成。然后,您可以通过 Tools 菜单中的 Options 对话框配置源代码控制系统。选择树中的 Source Control/Plug-in Selection 节点显示了可以指定当前源代码控制插件的对话框。一旦您设置了与源代码控制的集成,您就可以将 SQL Server 解决方案添加到源代码系统中,再将它签出。当您通过 Solution Explorer 创建新的 SQL Server 查询时,有一个 Pending Checkins 对话框会帮助您确定签入哪些文件。

例如,如果您在机器上安装了 Microsoft Visual SourceSafe 6.0 客户端组件,SQL Server 2005 Management Studio 会自动检测到 VSS 插件可用。正如前面所提到的,您可以在 Tools/Option 对话框中查找列出的 VSS 插件,方法是选择 Source Control,然后选择 Plug-in Selection 节点。另外,File 下拉菜单中的 Source Control 选项也已激活,可以通过它将现有的 Management Studio 解决方案添加到源代码控制中,或者直接从源代码控制打开一个 Management Studio。您可以启用多个源代码控制系统,并且将其从一个更改为另一个。

支持工具

除了这些编辑策略外,还有大量支持编辑 Transact-SQL 和其他代码的 Management Studio 工具。

例如,您可以使用可通过 Management Studio Template Explorer 窗口访问的 Query Templates 迅速启动 SQL Server 查询。Template Explorer 允许您为所有类型的 SQL Server 查询(而不只是 Transact-SQL 查询)使用、修改和添加自己的模板。Template Explorer SQL Server 模板与 SQL Server 2000 模板兼容,二者使用相同类型的参数替换标记。

如果您在运行查询时单击 SQLCMD 按钮,则还可以使用 Management Studio Transact-SQL 编辑器运行和调试 SQLCMD 查询。接下来 Management Studio 在执行 Transact-SQL 命令的同时也会识别和执行 SQLCMD 的特定命令。

SQL Server 2005 Beta 2 不支持通过 Management Studio 调试 Transact-SQL 代码。您必须使用 Visual Studio 2005 单步调试 Transact-SQL 代码。

使用 Transact-SQL 代码编辑器

大多数情况下,在 SQL Server 2005 Management Studio 中编辑 Transact-SQL 代码与在 SQL Server 2000 Query Analyzer 中编辑非常相似,但您会注意到它在创作体验上做了大量增强。

编辑功能

当您在 Management Studio 中编辑 Transact-SQL 代码时,您会看到大致相同的颜色语法突出显示和编辑选项,这是您在 SQL Server 2000 Query Analyzer 中非常熟悉的。另外,除了撤消编辑外,还可以重复编辑。您还有一个增强的查找和替换对话框,它允许您根据正则表达式或通配符搜索,以及跨文件搜索和替换。

Beta 2 中的 Management Studio 没有一个与查询分析器的对象搜索对话框相对应的工具。

Management Studio Edit 菜单中的其他编辑选项还包括制表符替换空格和空格替换制表符选项(将制表符转换成空格或反向转换),以及删除水平空白的能力。新的选项还包括打开/关闭切换自动换行的能力和切换是否使用自动换行标志符号的能力。您可以在 Tools/Options/Text Editor/All languages 对话框中配置自动换行。

键盘快捷键

您可以使用默认的 Standard 工具栏上的按钮注释和取消注释,缩进和取消缩进文本。然而,Management Studio 用于注释和取消注释 Transact-SQL 代码的标准键盘快捷键有所更改:Management Studio 不是使用 CTRL SHIFT C 来注释,使用 CTRL SHIFT R 来取消注释,而是默认使用 CTRL K 再用 CTRL C 来注释,使用 CTRL K 再用 CTRL U 来取消注释。只需按住 CTRL 键加 C,在不释放 CTRL 键的条件下又按下 K 即可注释代码。(请参见 SQL Server 2005 Beta 2 Books Online 中的“SQL Server Management Studio 键盘快捷键”。)

您可以在 Tools/Options/Environment/Keyboard 对话框中将 Management Studio 键盘快捷键方案从 Standard 更改为 SQL Server 2000。Beta 2 Management Studio 不允许您自定义键盘快捷键。

窗口管理

在 Management Studio 中,您可以选择两种风格的查询编辑窗口:选项卡式或 MDI 文档。默认设置是选项卡式窗口,您可以通过选择选项卡来选择任何打开的查询窗口。您可以在 Tools/Options 对话框中,在 Environment 对话框中将窗口布局更改为 MDI 窗口。当您这样做时,Management Studio 会自动重启,但会保存您的所有连接和打开的窗口。

因为 Management Studio 有许多窗口可用,所以您可能会发现使用 SHIFT ALT ENTER 键盘快捷键来使查询编辑窗口全屏化会很方便,您也可以通过 View 菜单来实现全屏化。如果您想将窗口重置为默认设置,可以单击 Window 菜单中的 Reset Window Layout 选项。

您可以查看垂直或水平平铺的查询窗口,方法是右键单击一个查询窗口的选项卡,选择 New Horizontal Tab GroupNew Vertical Tab Group。完成这一步之后,可以使用 ALT SHIFT ENTER 键盘快捷键来使查询窗口最大化,以获得平铺效果。图 3 显示了两个使用 Vertical Tab Group 来并排平铺并使用 SHIFT ALT ENTER 命令来最大化的查询窗口。

3. 可以右键单击查询选项卡并选择 New Horizontal/Vertical Tab Group 来对齐两个或多个查询窗口,并使用 SHIFT ALT ENTER 来使窗口最大化。

使用查询结果

除了使用 Query 工具栏中的 Execute 按钮执行查询外,还可以使用 F5、ALT X 或 CTRL E。同样,可以将结果定向到文本、网格或文件。当您将结果定向到网格时,可以使查询结果在独立的选项卡窗口中显示,还可以使用 Tools 菜单下的 Options 对话框使这一更改应用到下一个打开的查询窗口。在该对话框的树状视图中,下拉至 Query ResultsSQL ServerResults to Grid。然后选中“Display results in a separate tab”。

这里有一些局限性,表明这个版本还有待改进。在 Management Studio Beta 2 中,不能将基于文本 的结果显示在独立的选项卡式窗口中。当您在独立的选项卡式窗口中显示基于网格的结果时,选项卡会出现在窗口的底部,当前还无法将其置于窗口顶部。

虽然在 Management Studio 中不像查询分析器那样有一个与将结果窗口切换为打开或关闭相关联的工具栏图标,但 CTRL R 命令还是可以起到相同的作用。您还可以使用 Window 菜单中的 Hide/Show Results Pane 选项,以及使用 Tools 菜单中的 Customize 选项,在 Query 工具栏中添加一个具有相同选项的按钮。

分析查询

Management Studio 添加了新的功能来支持查询分析。除了熟悉的图形和文本形式的 showplan 输出,您还可以将 showplan 输出定向到 XML。Database Tuning Advisor 取代了索引优化向导,而客户端统计则增加了两个新功能。

图形查询计划

与在查询分析器中一样,可以使用 Standard 工具栏中的按钮,以及单击 Query 菜单中的选项直观地检查估计的和实际的查询设计。您会注意到 Management Studio 显示了一组修正过的用于分析查询计划的图标。特别地,运算符显示为蓝色,光标物理操作显示为黄色,而语言元素显示为绿色。虽然查找相关对象(表或索引)还需要访问特定节点的 Properties 页,但是在图形查询计划中的每个节点顶部都以不同颜色显示的方式使得操作信息的显示更加清楚。(要获得图形查询计划图标的完整列表,请参见 Beta 2 Books Online 中的“Graphically Displaying the Execution Plan Using SQL Server Management Studio”。)

可以使用图形查询计划窗口右下角的 符号来放大查询计划。您还可以将 showplan 输出定向到 XML。如果您调用命令

SET SHOWPLAN_XML ON

并执行结果发送到网格的查询,则结果集会包含 XML showplan,将其作为一个 XML 文档,通过只有一行一列的表返回。然后,您可以单击单元格内容中的内部链接,在 Management Studio XML 编辑器中查看 XML showplan。当将结果发送到文本时,输出也一样,但从网格打开会导致单元格调用 XML 编辑器。

Management Studio Beta 2 不支持将图形查询计划作为 XML 文档导出,或者将 XML 文档导入图形查询设计显示中。

Database Tuning Advisor

SQL Server 2005 Database Tuning Advisor 取代了旧式索引优化向导,对于选定的查询,可以通过 Query 菜单调用它,或者使用 CTRL I 键盘快捷键。(可以直接通过 Tools 菜单调用 Database Tuning Advisor。)

客户端统计

客户端统计可以确定网络和客户端组件占据查询总响应时间的比例。Management Studio 支持通过 SQL 编辑工具栏收集客户端统计,也支持通过 Query 菜单收集。SQL Server 2005 Beta 2 Management Studio 中的客户端统计为您提供了重置客户端和显示试验运行结果平均值的选项,从而使您对客户端统计有更多的控制。您可以使用 Shift Alt S 来启动客户端统计,或者从 Query 菜单选择相同的选项,通过它可以重置客户端统计。在输出中会列出每个试验结果和所有试验的平均结果。在时间统计中还增加了一个新的客户端统计 — 总执行时间。

配置 Management Studio 来进行 Transact-SQL 编辑

Management Studio 有三个主要的配置选项对 Transact-SQL 查询编辑有影响。

Tools/Options 对话框

大多数 Management Studio 配置选项都可以从 Tools 菜单的 Options 对话框中找到。这个对话框成为 Management Studio 的所有查询编辑默认选项的集中场所。当您更改一个与 SQL Server 查询相关的选项时,所做的更改会作用于所有后续查询的默认设置,如同查询分析器。然而,配置更改何时起作用却不固定。有些选项会根据您想配置的查询类型(Transact-SQL、分析服务、SQL Mobile 等)而有所变化。有时更改会立即应用于所有查询窗口,有时只应用于后续窗口,有时 Management Studio 必须重启才能应用更改。

Management Studio 并不提供从 Tools 菜单管理表索引或表统计的能力。这些操作已经移动到 Object Explorer:只需在 Object Explorer 中下拉到要查看的表的 IndexesStatistics 节点。

并非 Tool/Options 对话框中的所有可用选项在 Beta 2 中都是活动的。例如,在 Text Editor/All Languages/Tabs 对话框中,您可以选择无缩进、块缩进和智能缩进。而在 Beta 2 中,SQL Server 查询实现了块缩进,但没有实现智能缩进。

Tools/All Languages/General 对话框中,可以注意到一些用于 Statement Completion 的选项。这些选项会影响 IntelliSense 的行为。这里还可以让您指定自动换行选项以及允许在 SQL 查询中单击 URL 导航。

在SQL Server 2005 Beta 2 中,IntelliSense 对 SQL Server 查询不是活动的,而对 XML 和 MDX 编辑器是活动的。(您可以在 Options 对话框树的 Text Editor/XML 节点中进一步配置 XML 编辑。)

自定义工具栏

在 Management Studio 中,从 Tools 菜单选择 Customize 选项可以调用 Customize 对话框,它允许您自定义工具栏外观。例如,如果您想拥有一个切换结果面板的工具栏按钮,可以在 Customize 窗口的 Commands 选项卡中,选择 Window 类别,并向下滚动至 Show Results Pane 命令。选中它,将它拖到所期望工具栏的位置上。

Beta 2 Management Studio 还没有自定义键盘快捷键的机制。作为替代,您可以在 Standard Management Studio 键盘快捷键方案和 SQL Server 2000 快捷键方案之间选择。

Query Options

您可以调用 Query Options 对话框来为当前查询窗口设置某些选项,可以从 Query 菜单调用,或者使用 CTRL SHIFT O 键盘快捷键,或者单击 Query 工具栏中的 Query Options 按钮。Query Options 对话框可以让您设置查询执行和结果显示的选项,但只能对查询窗口设置。可用的选项是 Tools/Options 对话框中选项的一个子集:Execution 选项与 Tools/Options/Query Execution/SQL Server 中的选项一样,而 Results 选项与 Query Results/SQL Server 对话框中的选项一样。不同之处是当您在 Query Options 对话框中设置选项时,您只能对当前查询窗口起作用。

小结

SQL Server 2005 Beta 2 Management Studio 提供了一些用于开发 Transact-SQL 查询的引人注目的增强。特别是,在连接到物理 SQL Server 时不需要进行编辑,以及可以在同一个编辑会话中连接、断开连接或更改连接。也许最重要的增强是将 Transact-SQL 脚本文件组织到解决方案和项目以及将这些解决方案与源代码控制系统相集成的能力。Management Studio 与查询分析器十分类似,您会发现它很容易入门,但它也为您提供了重要的新帮助来帮助您编辑 Transact-SQL 代码。

关于作者

Ron Talmage 是 Solid Quality Learning 的创始人和主要顾问,他生活在西雅图。他是一位 SQL Server MVP,现任 Pacific Northwest SQL Server Users Group (pnwsql.org) 主席,他是 PASS InfoLink 的多产编辑。他著有 SQL Server Professional、SQL Server Magazine 和 CoDe Magazine。他的电子邮件地址是 [email protected]

标签: