SQL Server Studio管理中重复行的快捷方式?

时间:2011-05-18 20:01:26

标签: sql-server-2008 ssms

在Netbeans和Eclipse中你可以点击CTRL + Shift + Down(我认为那是netbeans),它会复制一行代码。这可能在SQL Server Management Studio中吗?这与SQL Server 2008一起运行

6 个答案:

答案 0 :(得分:26)

我认为您可以在没有选择任何文本的情况下点击 CTRL + C ,并且在剪贴板中,您点击输入并粘贴行后就会获得完整的行。

上午生病检查是否在MGM2008中使用,我使用2005年。

答案 1 :(得分:3)

我使用这个AutoHotKey脚本复制 CTRL + D "重复行"我以前从Visual Studio中获得的功能:

; make ctrl+d duplicate line in SQL
SetTitleMatchMode, 2
#IfWinActive, Microsoft SQL Server Management Studio
^d::    
    ; save clipboard
    SavedClipboard = %clipboard%
    Send {Home}
    Send +{End}
    Send ^c
    ClipWait
    Send {End}
    Send {Enter}
    Send ^v
    clipboard = %SavedClipboard%
    return

答案 2 :(得分:3)

我喜欢@Matt Kemp的AutoHotKey脚本解决方案,但我改用了这个脚本:

; make ctrl+d duplicate line in SQL
SetTitleMatchMode, 2
#IfWinActive, Microsoft SQL Server Management Studio
^d::    
    ; save clipboard
    Send ^c
    ClipWait
    Send ^v
    Send ^v
    return

答案 3 :(得分:0)

这是我的Autohotkey脚本版本,允许 CTRL + D 复制当前行而不更改剪贴板。我第一次接触到此热键是在Notepad ++中,它对我来说越来越重要。一个常见的用例是要用剪贴板中的值更改文本行,但是我首先要复制该行作为备份,以便可以注释掉。

此答案与@Matt Kemp的答案类似,但正如注释中所指出的那样,看起来很简单的脚本有些脆弱。

我的回答有以下差异:

  • 它包含sleep个延迟,可以使结果更加一致。
  • 我已经设置了脚本,因此它可以支持一组应用程序,例如SSMS,VBA,OneNote,甚至是JSFiddle这样的编码网站。
  • 光标结束于行的开头而不是结尾。如果您打算注释重复的行,这将很有帮助。
  • 我在脚本中留下了注释,以帮助调试它,并让您看到一些我在玩弄的历史。

我想通过添加sleep语句来克服两个棘手的问题。有时,当将当前剪贴板保存到变量中时,实际上会将当前行保存到变量中,从而导致从不还原原始剪贴板内容。在其他情况下,剪贴板中的值会粘贴到屏幕上,而不是复制当前行。我修改了脚本,添加了一些延迟,这些延迟通常会给我带来我想要的结果。它并没有我想要的那么快,但是由于不一致的结果,我会花点时间。

我正在i7计算机上使用Windows 10 64位。


SetTitleMatchMode,2;窗口的标题可以在其中的任何位置包含WinTitle以进行匹配。

GroupAdd, ctrlD_group, Microsoft Visual Basic for Applications  ; VBA
GroupAdd, ctrlD_group, Microsoft SQL Server Management Studio   ; SSMS (AHK must be running as Admin for this to work)
GroupAdd, ctrlD_group, Microsoft Visual Studio                  ; Visual Studio
GroupAdd, ctrlD_group, ahk_exe notepad.exe                      ; Notepad
GroupAdd, ctrlD_group, ahk_class Framework::CFrame              ; OneNote
GroupAdd, ctrlD_group, ahk_class ENSingleNoteView               ; EverNote view
GroupAdd, ctrlD_group, JSFiddle                                 ; Website JSFiddle
GroupAdd, ctrlD_group, ahk_class OMain                          ; Access
GroupAdd, ctrlD_group, Advanced Editor                          ; Excel Power Query Advanced Editor 
GroupAdd, ctrlD_group, ahk_class XBasicDlgBox                   ; Alpha Anywhere - Edit Event dialog box
GroupAdd, ctrlD_group, [HTML Editor]                            ; Alpha Anywhere - HTML Editor
GroupAdd, ctrlD_group, [Code Editor]                            ; Alpha Anywhere - Code Editor


;=== Duplicate current line CTRL+D ===
; Applies to all application in the ctrlD_group
; Note that SetTitleMatchMode and GroupAdd have to be in the autoexecute section of the script (above first hotkey and/or return) 
#IfWinActive ahk_group ctrlD_group
^d::        ; CTRL+D
    ToolTip Duplicating current line...
    Temp:=ClipboardAll
    Clipboard = 
    SendInput {End}+{Home}
    Sleep, 50
    ;MsgBox,,, % "Selected text:" A_Tab gst() "`nClipboard:" A_Tab Clipboard
    SendInput ^c
    ClipWait, 1
    ;msgbox,,Before,% Clipboard ; This always shows the line to be duplicated even when the ^v pastes a different value.
    ;ClipWait, 2  ; This wasn't working consistently so I used Sleep instead.
    SendInput {End}{Enter}

; I tried to speed up the paste and  using ^v is faster but occasionally 
; would paste what was in the clipboard instead of the current row.  
; I decided to deal with it for now.  
; Removing SetKeyDelay, -1 may be the trick to having it work.

    ;SendRaw %Clipboard%  ; This works but is slow drawing on the screen.

    Sleep, 400
    SendInput, ^v{Home} ;paste plain text
    Sleep, 50   

    SendInput, {Home}
    Clipboard:=Temp     ; Restore the clipboard
    ;msgbox,,After,% Clipboard

    SoundBeep 300, 150 ; Let me know the ahk script is working and that the application CTRL+D has been overridden.
    ToolTip
Return
#IfWinActive

我觉得我需要经常调整一下此代码,因为我注意到它在某些应用程序中表现得有些怪异。如果您可以进行改进的测试,请输入提示音。

答案 4 :(得分:0)

如果您不使用Results to Grid的快捷方式(该快捷方式当前占用 CTRL + D ),则可以在“选项”中更新键绑定菜单。

  1. 转到工具-> 选项-> 环境-> 键盘
  2. 显示包含的命令下,搜索Edit.Duplicate

Keyboard section of Options dialog box in SSMS showing Edit.Duplicate

  1. 选中按快捷键框,然后按 CTRL + D
  2. 现在搜索Query.ResultstoGrid
  3. 删除两个 CTRL + D 的快捷键。

当您单击“确定”离开“选项”时,您应该会发现可以立即使用按键绑定。

答案 5 :(得分:0)

在SSMS 18.2中,与[CTRL + E,V]和[CTRL + D]相关联的[edit.Duplicate]。最简单的方法是删除与[Query.ResultstoGrid]的关联[CTRL + D]。然后,这将仅针对[edit.Duplicate]。之后,您可以使用[CTRL + D]复制行。 我认为将保存结果更改为网格或文件时并不常见。 Option