我有點卡住了...我試圖從查詢中獲取輸出並根據單個條件將其分解成多個文件。我收到一個varchar類型轉換爲int的錯誤,我找不到原因。在SQL Server 2008中的工作...從單個查詢輸出到多個文件
DECLARE @LOOP AS INT;
DECLARE @SQL AS VARCHAR(MAX);
DECLARE @BCP AS VARCHAR(MAX);
DECLARE @COUNTER AS INT;
DECLARE @FILENAME AS VARCHAR(MAX);
SET @COUNTER='1'
SELECT @LOOP = COUNT(DISTINCT LIST_ID) FROM DATA_TABLE
WHERE STATUS='2' AND LIST_ID IS NOT NULL ;
SET @SQL=(SELECT CUSTOMER_NO FROM CUSTOMER A, DATA_TABLE B
WHERE A.CUSTOMER_ID=B.CUSTOMER_ID AND A.STATUS='2' AND LIST_ID='[email protected]+');
SET @FILENAME='QUERYOUT C:\Projects\FILE_"'[email protected]+'.TXT'
WHILE @COUNTER<[email protected]
BEGIN
SELECT
@BCP='BCP "'[email protected]+'+'[email protected]+''
SET @[email protected]+1
END
GO
我得到的錯誤是:
Msg 245, Level 16, State 1, Line 10
Conversion failed when converting the varchar value '[email protected]+' to data type int.
我試圖使用循環值,讓我知道每個文件的內容。例如,LOOP ='1'意味着該文件包含與LIST_ID ='1'相關聯的客戶記錄。
關於錯誤的想法?
SET @ FILENAME ='QUERYOUT C:\ Projects \ FILE_「'+ CAST(@LOOP AS VARCHAR)+'。TXT' – DMason 2014-10-31 15:57:00