跨多行应用引号

Ell*_*uez 4 sql-server t-sql sql-server-2008-r2

在 SQL Server Management Studio 中,您可以使用快捷方式CTRL + K > CCTRL + K > U批量注释/取消注释行。

是否有类似的键盘功能可以在值列表中应用单引号?我有 150 个从 Excel 电子表格复制的 ID,我想在此列表上执行使用 IN 子句的查询,我不想在每个项目周围手动添加单引号和逗号。

例如:

SELECT * FROM tbl WHERE someValue IN (
ABC1
ABC2
ABC3
ABC4
)
Run Code Online (Sandbox Code Playgroud)

我想突出显示这些值并使用键盘快捷键将列表变成:

SELECT * FROM tbl WHERE someValue IN (
'ABC1',
'ABC2',
'ABC3',
'ABC4'
)
Run Code Online (Sandbox Code Playgroud)

Aar*_*and 12

原生工具方法

获取更新的 Management Studio 副本(2012 SP22014都是免费的、功能齐全的,并且可以与您的 2008 R2 工具共存)。然后你可以这样做。

  1. 将光标放在第一个前导ABC.
  2. 按住Shift+ Alt,然后按三下向下箭头。
  3. 键入'

这很微妙,但您应该在这里看到一条微弱的蓝色垂直线,表明击键实际上会影响所有 4 行(或 150 行)。

在此处输入图片说明

Excel方法

如果您不想使用更现代的 Management Studio 版本,只需在 Excel 中添加这些内容即可。插入一个新列,在您想要的第一个单元格中放置一个单引号,将鼠标悬停在单元格的右下角,直到光标变成实心+,然后单击并拖动到底部:

在此处输入图片说明

第二单引号,逗号等重复全部复制,粘贴到SSMS,然后做一个快速的更换'<tab><tab>',等等。

正则表达式方法

您的第三种选择是使用正则表达式,适用于所有版本的 SSMS

  • 找什么: {.+}
  • 用。。。来代替: '\1',
  • 查看:选择
  • 展开查找选项
  • 用途:正则表达式(勾选)

该正则表达式表示找到所有内容并记住我们找到的内容\1用 tic 标记和逗号将找到的所有内容替换掉

如果您有更复杂的要求,请在 Find what 列出正则表达式方言 SSMS/Visual Studio 上的下拉箭头旁边的右侧 V 形符号

正则表达式什么?


Mik*_*ike 5

为了补充 Aaron 的出色答案,还有一种方法可以使用键盘快捷键在多行末尾添加字符,即使这些行具有不同的长度。(如果它们具有相同的长度,只需使用 Aaron 提到的 Alt+Shift 技巧)。

  1. 开始时在任何行前面都不要有任何制表符或空格。
  2. 使用 Alt+Shift 就好像您要将字符添加到每行的开头一样。
  3. 按 Enter,然后按 Backspace,然后按 End。

您的光标现在应该位于每行的末尾。

资料来源:jason.odonnell 对https://www.brentozar.com/archive/2015/04/ssms-alt-shift-trick/#comment-3691282的评论