--存储过程
CREATE PROCEDURE GENERATE_LOG 
@LOG NVARCHAR(255)
AS 
DECLARE @c int,@date varchar(8),@month varchar(6),@time varchar(12),@ExecCmd varchar(300)
select @date = convert(varchar(8),getdate(),112),
       @month = convert(varchar(6),getdate(),112),
       @time = convert(varchar(12),getdate(),114)CREATE TABLE #t (a smallint,b smallint, c smallint)SELECT @ExecCmd = 'D:\log\'+ @month+'\'+ @date +'.log'INSERT INTO #t EXEC master..xp_fileexist  @ExecCmd
SELECT @c=c FROM #t
If @c = 0
Begin
SELECT @ExecCmd = 'md D:\log\'+@month 
EXEC master..xp_cmdshell @ExecCmd    
EndSELECT @ExecCmd = 'echo '+@time + '>> D:\log\'+@month+'\'+@date+'.log'
EXEC master..xp_cmdshell @ExecCmd 
SELECT @ExecCmd = 'echo message: '+@LOG + '>> D:\log\'+@month+'\'+@date+'.log'
EXEC master..xp_cmdshell @ExecCmd DROP TABLE #t
GO--测试数据
EXEC GENERATE_LOG 'error A'
EXEC GENERATE_LOG 'error B'
EXEC GENERATE_LOG 'error C'