SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO
ALTER procedure [dbo].[proc_dzw159_CSV]
AS
BEGIN
SET NOCOUNT ON
--如果当天已经生成过,就不再继续
DECLARE @d DATE
SET @d = GETDATE()
IF EXISTS(SELECT id FROM Report WHERE CreateDate = @d AND FileName LIKE '%dzw159%')
RETURN
DECLARE @sql VARCHAR(8000),@u VARCHAR(200),@cmd VARCHAR(100)
DECLARE @fileName VARCHAR(100)
DECLARE @path VARCHAR(200)
PRINT @path
--文件名
SET @fileName='dzw159' + REPLACE(LEFT(CONVERT(CHAR(10),@d,120),10),'-','') + '.csv'
SET @path = 'D:\PPReport\'+CONVERT(VARCHAR(8),@d,112)+'\'
SET @cmd='mkdir '+ @path
EXEC master..xp_cmdshell @cmd, NO_OUTPUT
SET @sql = 'SELECT ''区域'',''PARTNET_NAME'',''PART'', ''DEF_INTANSIT'''
+ ' UNION ALL '
+ 'SELECT ''123'',''456'',FaultyPN,CONVERT(VARCHAR(50),count(0)) '
+ ' FROM table.dbo.tableQuery(NOLOCK) '
+ ' WHERE Date IS NULL '
+ ' AND Status IS NULL '
+ ' GROUP BY FaultyPN '
--SET @u=' -c -t ~ -S"." -U"user" -P"password"'
SET @u = '" -T -t"," -c'
SET @sql = 'BCP "'+ @sql +'" queryout "'+ @path + @fileName + @u
EXEC master..xp_cmdshell @sql
INSERT INTO Report(FileName,FilePath) VALUES('dzw159' + @fileName+ '.csv',@path+'dzw159' + @fileName+ '.csv')
--发送email
--DECLARE @i INT,@count INT,@ID INT, @EMAIL VARCHAR(1000),@fname VARCHAR(400),@fpath VARCHAR(400)
--DECLARE @ TABLE (SID INT IDENTITY,ID INT)
--INSERT INTO @(ID) SELECT ID FROM Report WHERE Eflag=0
--AND FileName = @fileName
--SET @I=1
--SELECT @count=COUNT(0) FROM @
--WHILE @i<=@count
--BEGIN
-- SELECT @ID=A.ID,@fname=FileName,@fpath=FilePath
-- FROM Report A INNER JOIN @ B ON A.ID=B.ID AND B.SID=@i
-- EXEC msdb.dbo.sp_send_dbmail
-- @profile_name='dzw159',
-- @recipients='110@qq.com',
-- @subject=@fname,
-- @body=@fname
-- ,@file_attachments=@fpath
-- SELECT * FROM dbo.Report
-- UPDATE Report SET Eflag=1 WHERE ID=@ID
-- SET @I = @i + 1
--END
SET NOCOUNT OFF
END
GO