有没有办法从T-SQL命令中删除空格并仍然执行它们?

时间:2013-08-30 11:28:28

标签: sql sql-server tsql sql-injection

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

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

DROP TABLE Table_1

我想要做的是将其转换为没有空格的形式。我以为我可以使用连接和CHAR字符串函数来生成要执行的字符串:

'DROP'+CHAR(32)+'TABLE'+CHAR(32)+'Table_1'

我尝试了这个并将其传递给EXEC,但这显然无效:

';EXEC('DROP'+CHAR(32)+'TABLE'+CHAR(32)+'Table_1');--

然后我考虑在许多行@declaring临时变量上构造字符串,但为此我似乎再次需要空格。
有没有办法做到这一点?

1 个答案:

答案 0 :(得分:15)

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

DROP/**/TABLE/**/Table_1

它会正常工作。