Команда exec master..xp_cmdshell не создает файл
Я не добиваюсь успеха с этой командой
DECLARE @cmd sysname, @var sysname
SET @var = 'Hello world'
SET @cmd = 'echo ' + @var + ' > C:\var_out.txt'
EXEC master..xp_cmdshell @cmd
Уже пробовал несколько примеров, но это не сработало. Команда выполняется, но файл просто не создается
2 ответа
Решение
Под какой учетной записью работает ваш SQL Server? Может быть, у него недостаточно привилегий. Если это так, вместо этого вы можете использовать sp_xp_cmdshell_proxy_account.
Тем не менее, я считаю, что вы пытаетесь найти файл на вашем компьютере, а не на сервере. И то, что вы делаете, это сохранение файла на сервере. Попробуйте сделать это на локальном сервере SQL.
Вы должны включить некоторые настройки перед выполнением этого скрипта с помощью sp_xp_cmdshell
USE [master]
GO
sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO