Режим команд SQL должен обрабатывать $(something)
как переменную .
В режиме SQLCMD результат PRINT '$test'
будет $test
, но выполнение PRINT '$(test)'
вернет сообщение 'test' scripting variable not defined.
Использование опции -x ( строчные буквы x) НЕ должно возвращаться это сообщение, хотя.
Я проверил это, запустив в командной строке Windows следующее:
sqlcmd -S localhost -E -i "c:\failsInSqlCmdMode.sql" -x
Где скрипт .sql содержит следующий SQL:
declare @test varchar(10)
set @test = '$(#stuff)'
select @test
go
Результат:
----------
$(#stuff)
(1 rows affected)
Только когда я удаляю -x в конце команды, я получаю ошибку:
Sqlcmd: Ошибка: синтаксическая ошибка в строке 2 рядом с командой '#' в файле 'C: \ failsInSqlCmdMode.sql'.
Я тестировал это на Windows 7 x64, подключаясь к SQL Server 2008 R2.