2011-04-06 90 views
6

在SSMS 2008 R2中,我们从右键单击菜单中选择了默认的“选择top 1000”和“编辑top 200”查询。我已经看到你可以在哪里更改它在选项中返回的行数。如何更改默认的SELECT TOP 1000查询以使用*代替每个字段?

我后来的是,我可以告诉它做一个SELECT *而不是扩大和包括每个领域?

这不是一个性能问题或任何事情,只是在查询超过5个字段的表时感到烦恼,我想要做一个select *。

例如,如果我有一个具有以下字段的表:

  • 名字
  • 生日
  • 国家
  • 邮编

当我用鼠标右键单击该人员表,并选择“SELECT TOP 1000行”菜单,我想是运行是

SELECT TOP 1000 * FROM People 

和NOT

SELECT TOP 1000 FirstName, LastName, Birthday, City, State, Zip FROM People 

编辑查询我怀疑这没有真正的答案,但我想我会看到有没有人知道它。

+1

'SELECT TOP 1000 * FROM MyTable'。这不工作吗? – shahkalpesh 2011-04-06 15:14:11

+1

更新了问题以提供更多清晰度,我知道如何做SELECT *,我想定制菜单行为。 – taylonr 2011-04-06 15:17:46

+0

为什么这是一个烦恼?如果你后来决定你只需要列的一个子集,它肯定会更容易?唯一可以自定义的是无论如何都是这个数字,所以我认为你一直坚持下去! – 2011-04-06 15:19:44

回答

3

我不相信有任何方法来定制本机SSMS功能。但是,您可以使用SSMS tools pack插件“自定义脚本”来处理这种类型的事情。

Screenshot

(虽然说实话选择列并键入*可能是因为导航菜单一样快)

Screenshot 2

+0

我将其标记为答案,因为尽管select *非常快速输出,但该工具还有很多其他用途,而且我从来不知道它存在。 – taylonr 2011-04-06 16:02:31

+0

@泰隆 - 同意。搜索您执行的历史查询的能力使其值得单独安装IMO。 – 2011-04-06 16:04:55

3

为什么SSMS的开发者希望鼓励一种不好的做法。由于select *确实是一个很差的练习,他们为什么要鼓励呢?

我可以看到不想在快速非生产查询中编写所有字段,但由于它正在为您做这件事,为什么不希望它做到这一点呢?

+1

在行动中,在我们的生产查询中,我们不做选择* ...这是当我正在调查某件事时并且在开发或测试数据库中,在mgmt内部脏......我只是喜欢SELECT *的更简洁的文本,但我明白不想鼓励坏习惯。 – taylonr 2011-04-06 15:33:02

+4

对我来说,它只会使窗口更具可读性,而不是让所有的混乱。 – Eli 2011-04-06 15:33:46

+2

在生产中这是一个糟糕的做法,但是当你在做实验时,它只是混乱。你偶然抓住这些自动查询并将它们投入生产?我只是不使用菜单和回退来手动编写'SELECT * FROM X',因为它非常短。 – 2011-04-06 15:37:41

0

这是违背最佳做法,所以SSMS不会这样做。

您最好的选择是要么删除特定列,并与*更换,或只是离开它,因为它正在考虑默认是无论如何要为您选择的所有列...

后,将鼠标指针放到TOP n和做Ctrl-Shift-End,Shift-Up,*不需要年龄,但我明白,当你测试时,使用*超过整个色谱柱规格,它使一切更整洁。

如果您将SSMS Tools Pack与SSMS IntelliSense结合使用,您可以使其键入速度快于滚动,右键单击和选择。

+0

对我来说,每次打开窗口时删除所有列并用'*'替换是一种痛苦。在插件和自动化的这一天,你会认为他们可以给用户带来操纵的力量。最佳实践是最佳实践,但如果我们有我们自己的理由不使用它们,它不应该强加于我们。 – Eli 2011-04-06 15:45:38

+0

@Eli - 我知道你的意思,我只是在更新我的答案,以反映这一过程:) – Town 2011-04-06 15:51:12

+0

“这是违背最佳实践,所以SSMS不会这样做” - 这只是傲慢的BS。 (来自SSMS,而不是Town)当表格中有很多列时,突出显示所有要删除它们的列并不是一项简单的任务。我不能直接进入SQL视图,这已经是一个痛苦了,我*有*等待它加载一些完全无用的行,然后它会让我编辑查询,因为设置返回到零的行数导致它得到这个结果,返回** ALL **的行数。 – Martha 2014-07-28 23:24:44

相关问题