Chandrashekar
5/21/2015 - 7:36 PM

Query to CSV File Using BCP

Query to CSV File Using BCP

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

DECLARE @FileName VARCHAR(50)
	,@bcpCommand VARCHAR(2000)

--SET @FileName = REPLACE('c:\authors_' + CONVERT(CHAR(8), GETDATE(), 1) + '.txt', '/', '-')
SET @FileName = REPLACE('c:\123.csv', '/', '-')
SET @bcpCommand = 'bcp "SELECT * FROM [TCIV3_Dev].[dbo].[LUXOR_PM_PRODUCT_DIM]" queryout "'
SET @bcpCommand = @bcpCommand + @FileName + '" -c -t, -T -S .'

EXEC master..xp_cmdshell @bcpCommand
select * from [dbo].[LUXOR_PM_PRODUCT_DIM]




------------------------------------------------------------------------------------------------------
-- =============================================
-- Author:		Chandrashekar Naik D
-- Create date: 2015-05-22
-- Description:	Create CSV Files Per Manager for entire EngineerResponsibleProductsXActivityRating table
-- This is alternative to each manager exporting the report to csv and sending to SASSI for Salesforce Integragion
-- =============================================
alter proc USP_Utility_GenerateCSVFileInBulk
AS
BEGIN
	DECLARE @tblMgr TABLE (
		Id INT IDENTITY(1, 1)
		,MgrUserId VARCHAR(255)
		,MgrEmpId VARCHAR(255)
		,MrgName VARCHAR(255)
		)
	DECLARE @MgrUserId VARCHAR(255)
	DECLARE @MgrEmpId VARCHAR(255)
	DECLARE @MrgName VARCHAR(255)
	DECLARE @I INT = 1
		,@I_RowCount INT

	INSERT INTO @tblMgr (
		MgrUserId
		,MgrEmpId
		,MrgName
		)
	SELECT UserId
		,EmpId
		,UserName
	FROM [user]
	WHERE UserId IN (
			SELECT DISTINCT InternalManagerId
			FROM [user]
			WHERE UserId IN (
					SELECT DISTINCT UserId
					FROM EngineerResponsibleProductsXActivityRating
					)
			)

	SET @I_RowCount = @@ROWCOUNT
	SET @I = 1

	WHILE (@I <= @I_RowCount)
	BEGIN
		SELECT @MgrUserId = MgrUserId
			,@MgrEmpId = MgrEmpId
			,@MrgName = MrgName
		FROM @tblMgr
		WHERE Id = @I

		--PRINT @MgrUserId + ' ' + @MgrEmpId + ' ' + @MrgName
		DECLARE @MgrCode VARCHAR(255) = @MrgName + '_' + @MgrUserId + '_' + @MgrEmpId
		DECLARE @FileName VARCHAR(255)
			,@bcpCommand VARCHAR(2000)

		SET @FileName = REPLACE('E:\CSVFiles\' + @MgrCode + '.csv', '/', '-')
		SET @bcpCommand = 'bcp "exec [TCIV3_Dev].[dbo].[USP_GetEngxProductxRatingReport] @ManagerID=' + @MgrUserId + ',@CenterId=2" queryout "'
		SET @bcpCommand = @bcpCommand + @FileName + '" -c -t, -T -S PATTEST'

		EXEC master..xp_cmdshell @bcpCommand

		SET @I = @I + 1
	END
END