SQL Prompt与IntelliSense大对比(上)

日期: 2011-04-13 作者:Roman Rehak翻译:沈宏 来源:TechTarget中国 英文

开发工具的自动完成功能诞生到现在已经超过十年了。它就像一台洗碗机,一旦拥有它,你就再也不能离开它。这个功能可以在用户输入文字的时候预测单词或者短语,并且在完成输入之前显示可用对象的列表。在开发环境中,如果你选择了某个对象,该工具就会自动显示该对象所属的方法和属性列表。

  因此,数据库专业人士也想有一个具有类似功能的数据库编程工具。SQL Prompt是由Red Gate软件有限公司开发的第一个具有自动完成功能的SQL Server第三方工具,它拥有强大的功能,时至今日它仍然是最好的。经过多年的发展,微软终于推出了自己的工具,叫做SQL Server Management Studio(SSM……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

开发工具的自动完成功能诞生到现在已经超过十年了。它就像一台洗碗机,一旦拥有它,你就再也不能离开它。这个功能可以在用户输入文字的时候预测单词或者短语,并且在完成输入之前显示可用对象的列表。在开发环境中,如果你选择了某个对象,该工具就会自动显示该对象所属的方法和属性列表。

  因此,数据库专业人士也想有一个具有类似功能的数据库编程工具。SQL Prompt是由Red Gate软件有限公司开发的第一个具有自动完成功能的SQL Server第三方工具,它拥有强大的功能,时至今日它仍然是最好的。经过多年的发展,微软终于推出了自己的工具,叫做SQL Server Management Studio(SSMS)2008 IntelliSense,但它的功能相当有限。虽然SQL Prompt和SSMS IntelliSense基本上是做同样的工作,但是都有各自显著不同的外观和体验。

  SSMS IntelliSense最早出现在SQL Server 2005的beta版本中,但当该数据库版本正式发布时该功能被删除了。最终在SQL Server 2008中该功能被正式发布,但是许多用户失望地发现该功能不能在SQL Server 2000和2005数据库中使用。该功能允许你在输入时按Ctrl + 空格键或Ctrl + J键显示可用的对象,如数据库、架构、角色、表和其他对象。如果你在操作表对象,最好先选择架构;这就会过滤掉所有不相关的而只显示该架构所属的表(如图1所示)。

图1

  在你选择表后,你可以按退格键删除“*”字符,再按Ctrl + J键开始选择列。不幸的是,你会在列表中看到很多的SQL函数和其他表中的列。我发现更简便的方法是:先创建表的别名,然后键入别名。IntelliSense就会只显示正在使用的表中的列(如图2所示)。

图2

  但是一旦这么做,工具就不那么有用了。IntelliSense没有提供一种筛选列表成员的方法,有时会不显示任何东西。

  我毫不怀疑微软会在未来的版本中改进这个工具,但现在它缺乏先进功能并且不支持我们需要支持的旧平台。

  现在,让我们看一看SQL Server第三方工具Red Gate的SQL Prompt V5版本。标准版提供了强大且易于使用的代码完成功能,而专业版有许多的代码格式化和代码重构功能。在之前这些高端功能由一个??已停产的SQL Refactor产品提供。

  SQL Prompt不是一个独立的工具,它实际上是一个SS??MS插件。当连接到一个新的数据库时,SQL Prompt从数据库中读取并缓存对象元数据 -- 你会在右下角看到一个弹出的小窗口。SQL Prompt花费几秒钟到几分钟的时间从数据库中读取信息,这依赖于网络延迟和存储的对象数量。

  一旦你开始输入代码,SQL Prompt不断地监测和弹出包含可能选择的对话框(如图3所示)。

图3

  使用图3中的SELECT语句,你可以获得数据库中表和表列的详细清单。在选择表后,将光标移动到星号的右侧。会出现一条提示消息“Press TAB to expand wildcard”(按Tab键扩展通配符)。一旦你按了Tab键,SELECT语句就会变成下面的样子:

  SELECT AddressID ,
  AddressLine1 ,
  AddressLine2 ,
  City ,
  StateProvinceID ,
  PostalCode ,
  SpatialLocation ,
  rowguid ,
  ModifiedDate
  FROM Person.Address

  这是非常有用的;它被认为是一个很好的习惯:列出全部的列而不是使用一个通配符。如果你不希望选择所有的列,可以删除那些你不想要的。相反,如果你只想选择几个列,删除“*”通配符,再按Ctrl +空格键。SQL Prompt显示表中列的列表。你可以按回车键或在“Column Picker”选项卡中点击继续选择那些你想要的列(如图4所示)。

图4

翻译

沈宏
沈宏

相关推荐