Я делаю запрос в SSMS для извлечения данных в файл .CSV. Я использую для этого оператор :out
и включил опцию SQLCMD в SSMS.
Этот запрос должен запускаться периодически и должен иметь имя файла в зависимости от даты (и некоторых других условий, но Я опустил их для простоты).
У меня есть этот код для создания @path
в качестве переменной, и я хочу использовать эту переменную в операторе :out
:
DECLARE @datestring as varchar(8)
DECLARE @path as varchar(100)
select @datestring = convert(varchar(8), getdate(), 112)
set @path = CONCAT('\\share\extracts\', @datestring, '.csv');
print @path
:out @path
--my select statement that needs the result set exported to csv will come here
вывод, который я получаю:
Unable to redirect output to @path.
Access to the path 'C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\@path' is denied.
\\share\extracts\20200526.csv
Итак, он печатает путь, когда я делаю выбор, но переменная принимается буквально как @path
в некотором стандартном пути к файлу SSMS.
I Я пробовал кое-что с :setvar
и знаком $
перед переменной, но безуспешно.