2013-07-23 108 views
0

我沒有得到成功使用此命令命令「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 

已經嘗試過了幾個例子,但沒有奏效。 該命令運行但文件根本不會創建

+0

執行這個腳本你在找你的機器上或者在SQL框中的文件嗎? –

+0

用於xp_cmdshell的帳戶(通常是SQL Server服務帳戶)是否有權寫入該帳戶?我猜不是。 – jpw

+0

你期望這個文件可以創建在哪裏?它將在SQL SERVER本地驅動器c:\上創建,而不是在客戶端PC上。 – valex

回答

1

您的SQL Server在哪個帳戶下運行?也許它沒有足夠的權限。如果這是真的,則可以改爲使用sp_xp_cmdshell_proxy_account。

但是,我相信你正試圖找到你的機器上的文件而不是服務器。而你正在做的是將文件存儲到服務器。嘗試在本地SQL Server上執行此操作。

+0

這是一個測試,sql是本地的 – msantiago

+0

你在虛擬機上運行它嗎?也許鏈接服務器?你可以檢查以下TSQL命令的輸出:'EXEC master..xp_cmdshell'hostname''和'EXEC master..xp_cmdshell'dir c:\'' – OzrenTkalcecKrznaric

-1

你必須之前啓用一些設置與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 

+0

呃......什麼?什麼設置?另請參閱格式化提示。 – bjb568