爲此,您需要查詢存儲在查詢文件,然後你可以如下圖所示存儲結果,從命令執行到一個文本文件中。
>sqlcmd -E -S(Local)\SQLExpress -YourDBName -iC:\myQuery -oC:\Output.txt
另一種使用T-SQL,並創建一個批處理語句通過XP_CMDSHELL執行。以下腳本將幫助您執行相同的操作,只需將您的查詢,ServerName替換爲使用的變量即可。
SET NOCOUNT ON;
GO
DECLARE @sqlcmd varchar(1000);
PRINT 'using SqlCMD.exe';
SET @sqlcmd = 'sqlcmd -S' + @@SERVERNAME + ' -E -oc:\outfile.txt '
DECLARE @cmd varchar(1000);
SET @cmd = '-Q"SELECT RIGHT(REPLICATE('' '' , 6) + CONVERT(varchar, AddressID), 6) AS AddressID, CONVERT(varchar(10), ModifiedDate, 121) AS ModifiedDate FROM AdventureWorks.Person.Address ORDER BY ModifiedDate;"';
SET @sqlcmd = @sqlcmd + @cmd;
--SELECT @sqlcmd;
EXEC xp_cmdshell @sqlcmd, no_output;
PRINT 'using BCP.exe';
SET @cmd = '"SELECT RIGHT(REPLICATE('' '' , 6) + CONVERT(varchar, AddressID), 6) AS AddressID, CONVERT(varchar(10), ModifiedDate, 121) AS ModifiedDate FROM AdventureWorks.Person.Address ORDER BY ModifiedDate;"';
SET @sqlcmd = 'bcp ' + @cmd + ' queryout "c:\outfile2.txt" -c -T -S' + @@SERVERNAME
--SELECT @sqlcmd;
EXEC xp_cmdshell @sqlcmd, no_output;
問候