четверг, 26 ноября 2009 г.

Прячем SQL инструкцию

declare @v as varchar(1024) declare @cmd as nvarchar(1024)
set @v = 0x73705F636F6E666967757265
set @cmd = cast(@v as nvarchar)
execute @cmd

Ничего не понятно, верно? Однако результат есть.

Что же такое 0x73705F636F6E666967757265? Это SELECT Convert(binary(12),'sp_configure')

В большинстве случаев шестнадцатеричные строки можно использовать без преобразования(execute и sp_executesql в этом случае исключение). Вот один из примеров:
EXEC sp_configure 0x61776520656E61626C6564,1
где 0x61776520656E61626C6564 SELECT Convert(binary(11),'awe enabled')