【发布时间】:2015-09-09 12:07:25
【问题描述】:
在编写带有 '*' 的 select 语句时(例如 select * (...)),我想使用键盘组合 [shift+2] +[2],而不是 [shift+8 ]。这是因为我可以在我的键盘上找到右 shift 和 2 按钮比左 shift 和 8 更容易。虽然这对你来说可能看起来很随意,但对我来说并非如此,而且底层的问题无论如何都是有效的。至少我认为是。 :)
我尝试使用名为“@2”的declaring a variable 来完成我想要的事情,并且我想要the dbms to interpret that as '*' and not as a 'string *',因此作为*-命令。后来我想把它作为一个全局变量,但出于这个问题的目的,我问它是否只想要一个临时变量。
Is it possible 让 dbms 将其解释为 *-command?如果是这样,怎么做?可能我需要使用different datatype,但是哪个?
请参阅下面的脚本,现在的结果和期望的结果。我希望你能帮忙。
一段脚本:
declare @2 nvarchar
set @2='*'
select @2 from TableAA
现在的结果:
(No column name)
*
*
*
etc
想要的结果:
A B C
1 43 25
2 33 788
3 13 83
etc.
//它似乎不能...请参阅下面的答案。我确实做了其他事情来实现类似的效果:我安装了 AutoHotkey 并编写了一个脚本,当我按下 Left shift 和 Escape 时插入一个“*”。奇迹般有效。请参阅下面的脚本。
>+Esc::
Send, *
Return
【问题讨论】:
-
您需要 Dynamic-SQL,例如:
DECLARE @sql NVARCHAR(MAX) = N'select '+ @2 + N' from TableAA)'; EXEC(@sql); -
你不能用常规的 SQL 语句做你想做的事。如果有帮助,您可以输入
*作为 ASCII 42 值。 -
也不要在没有 size 的情况下声明
nvarchar或varchar -
您需要一些键盘重新映射工具或自动热键或类似工具。
-
完全:谢谢。 @arvo:是的,我想到了类似的东西。现在我正在研究 Windows Keyboard Layout Creator 1.4,但这在我的电脑上不起作用。如果我找到我信任的程序,我会在此处添加。
标签: sql-server tsql variables ssms declare