Команда 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

Другие вопросы по тегам