2014-09-29 63 views
0

我試圖從使用SQL Server 2012的選擇查詢中的文本文件中插入數據。但我無法對此給予幫助。將表格數據複製到文本文件

代碼

EXEC xp_cmdshell 'bcp "Select RecodLine from WorkDataLoad" queryout "D:\Test.txt" -T -SSubhash-Pc -c -t,' 

錯誤

開始複製...
SQLSTATE = S0002,NativeError = 208
錯誤= [微軟] [SQL Server本機客戶端11.0] [SQL服務器]無效的對象名稱「WorkDataLoad」。
SQLSTATE = S1000,NativeError = 0
錯誤= [微軟] [SQL Server本機客戶端11.0]無法解析列級排序規則

BCP複製出失敗

+1

完全限定? 'dbname.dbo.WorkDataLoad' – 2014-09-29 11:16:26

+1

它給出無效的對象名稱錯誤。所以在你運行這個腳本之前,你有沒有像這樣設置數據庫 - 在你的查詢 – 2014-09-29 11:16:30

+0

@AlexK中設置'USE [YourDB]'或者只是附加dbname。同樣的錯誤後嘗試此「EXEC xp_cmdshell'bcp」從[dbo]選擇RecodLine。[WorkDataLoad]「查詢」D:\ Test.txt「-T -SSubhash-Pc -c -t,'」 – 2014-09-29 11:17:59

回答

0

嘗試這種方式:)

SET NOCOUNT ON 
DECLARE @TestTable TABLE (ID INT IDENTITY(1,1), Data NVARCHAR(1000)) 
DECLARE 
    @AllData NVARCHAR(MAX), 
    @FileDest NVARCHAR(100) 

--Replace only the path here for example ' >>C:\myfile.txt'',no_output' 
SET @FileDest = ' >>E:\test.txt'',no_output' 
SET @AllData = '' 

INSERT INTO @TestTable VALUES 
    ('This is my first row'), 
    ('hello from second row') 

SELECT @AllData += 
    'EXEC xp_cmdshell ''@ECHO '[email protected]+CHAR(10) 
FROM @TestTable 

EXEC(@AllData) 
0

我認爲數據庫的鬃毛在SELECT語句缺失,使用這樣的查詢:

Select RecodLine from DatabaseName.SchemaName.WorkDataLoad 

或者,你必須提供一個參數指定數據庫名稱,如:

EXEC xp_cmdshell 'bcp "Select RecodLine from WorkDataLoad" queryout "D:\Test.txt" -d "DatabaseName" -T -SSubhash-Pc -c -t,' 
相關問題