有没有一种方法可以从T-SQL命令中删除空格并仍然执行它们?

有没有一种方法可以从T-SQL命令中删除空格并仍然执行它们?,sql,sql-server,tsql,sql-injection,Sql,Sql Server,Tsql,Sql Injection,我正在尝试执行命令,但需要删除空格 下面是我要执行的命令,但它有两个空格: DROP TABLE Table_1 我想做的是把它转换成一个没有空格的形式。我想我可以使用concatenation和CHAR string函数来生成要执行的字符串: 'DROP'+CHAR(32)+'TABLE'+CHAR(32)+'Table_1' 我尝试了这一点并将其传递给EXEC,但这显然无效: ';EXEC('DROP'+CHAR(32)+'TABLE'+CHAR(32)+'Table_1');-- 然

我正在尝试执行命令,但需要删除空格

下面是我要执行的命令,但它有两个空格:

DROP TABLE Table_1
我想做的是把它转换成一个没有空格的形式。我想我可以使用concatenation和CHAR string函数来生成要执行的字符串:

'DROP'+CHAR(32)+'TABLE'+CHAR(32)+'Table_1'
我尝试了这一点并将其传递给EXEC,但这显然无效:

';EXEC('DROP'+CHAR(32)+'TABLE'+CHAR(32)+'Table_1');--
然后,我考虑在声明临时变量的许多行上构造字符串,但为此,我似乎再次需要空格。

有没有办法做到这一点?

您可以使用空的多行注释而不是空白:

DROP/**/TABLE/**/Table_1

它会很好地工作。

您可以使用空的多行注释而不是空白:

DROP/**/TABLE/**/Table_1

对我来说,有趣的问题是:你为什么要这样做?使用标签行吗?出于好奇,你为什么要删除空间?啊,所以你基本上希望我们帮助你进行SQL注入?很好。@AndriyM-SQL注入有正当的理由。e、 暴露现有代码中的漏洞。如果应用程序面向公众且易受攻击,那可能只是时间问题。@MartinSmith:很公平,我可能有太多的假设。但在这种情况下,如果能马上知道我们没有参与任何恶意活动,并且OP没有澄清这一点,那就太好了。对我来说,有趣的问题是:你为什么要这么做?使用标签行吗?出于好奇,你为什么要删除空间?啊,所以你基本上希望我们帮助你进行SQL注入?很好。@AndriyM-SQL注入有正当的理由。e、 暴露现有代码中的漏洞。如果应用程序面向公众且易受攻击,那可能只是时间问题。@MartinSmith:很公平,我可能有太多的假设。但在这种情况下,如果能马上知道我们没有参与任何恶意活动,并且OP没有澄清这一点,那就太好了。+1我认为如果没有任何空格字符,这是不可能的。很好-我会记得,我不确定什么时候可能需要它,但有趣的是,我不应该提到这一点。。。我也不能使用正斜杠…如果有人找不到不使用正斜杠+1的替代方案,我会将此标记为答案。我认为如果没有任何空格字符,这是不可能的。很好-我会记得,不确定什么时候我可能需要它,但有趣的是,我不应该提到这一点。。。我也不能使用前斜杠…如果有人找不到不使用前斜杠的替代方案,我会将此标记为答案