AutoHotkey 格式化 SQL 并继续失败

AutoHotkey formating SQL with continuation fails

我是 AutoHotkey 的新手,并且已经阅读了我能够找到的关于热字串和延续的大部分文档,但是我在获取工作皮套以插入短 SQL 时遇到了一些问题查询。

我的 AHK 脚本文件中有这个脚本:

:* C1:sqlthing::
(
DECLARE @Var1 INT
    ,@Var2 VARCHAR(10)
    ,@Var3 INT

SET @Var1 = XX 
SET @Var2 = 'XX'

SELECT @Var1 = Col1
FROM Tbl1 WITH (NOLOCK)
WHERE Col2 = @Var3
)

它在 SQL studio 中是这样的(双制表符和一个换行符丢失):

DECLARE @Var1 INT
    ,@Var2 VARCHAR(10)
        ,@Var3 INT

        SET @Var1 = XX 
        SET @Var2 = 'XX'

        SELECT @Var1 = Col1FROM Tbl1 WITH (NOLOCK)
        WHERE Col2 = @Var3

我不知道为什么。我试过使用转义 TAB 代替 (`t),但结果是一样的。

令我特别困惑的是 'FROM' 行之前的换行符完全消失了。

这是因为 SQL Studio 会自动缩进正在键入的文本并自动替换字符串模仿键入。

改为使用剪贴板:

:* C1:sqlthing::
text=
(
DECLARE @Var1 INT
    ,@Var2 VARCHAR(10)
    ,@Var3 INT

SET @Var1 = XX
SET @Var2 = 'XX'

SELECT @Var1 = Col1
FROM Tbl1 WITH (NOLOCK)
WHERE Col2 = @Var3
)
pasteText(text)
return

pasteText( text ) {
    clipSave := clipboardall
    clipboard := text
    send +{Insert}
    sleep 20
    clipboard := clipSave
}