home
-- Writing to a text file from a stored procedure
Author Nigel Rivett
The are several methods of creating text files from sql server.
osql
bcp
redirection commands
sp_MakeWebTask
Com object calls
SSIS
Remember that in all cases the path of the output file will be relative to the server - not to the client on which the application is running.
osql
This example will just output master..sysobjects to the file c:\osqloutput.txt.
declare @cmd varchar(1000)
select @cmd = 'osql -U -P -S -Q"select * from master..sysobjects" -o"c:\osqloutput.txt" -w500'
exec master..xp_cmdshell @cmd
bcp
bcp very fast and easy to use for just dumping a table out - can be used against a view too.
master..xp_cmdshell 'bcp master..sysobjects out c:\file.bcp -S -U -P -c '
redirection commands
You will need to create the data to be output as in dynamic sql statements
The first command here creates or overwrites the file - the rest append to the file.
exec master..xp_cmdshell 'echo hello > c:\file.txt'
exec master..xp_cmdshell 'echo appended data >> c:\file.txt'
exec master..xp_cmdshell 'echo more data >> c:\file.txt'
will generate a file containing
hello
appended data
more data
sp_MakeWebTask
This is for creating html code from a query
Com object calls
Using sp_oa... system stored procedures and creating com objects or existing applications you can probably do whatevr you wish - but you should probably ask whether sql server is the right place to control this.
SSIS
This involves creating an ssis package to extract the data then calling it from an SP
exec ('dtexec /f "MyPackage.dtsx"')
home