2012-08-27 24 views
7

Tôi gỡ lỗi một thủ tục được lưu trữ (SQL Server 2005) và tôi cần phải tìm ra một số giá trị trong một datatable.Sử dụng tiện ích bcp để xuất truy vấn SQL vào một tệp văn bản

Quy trình được chạy bởi một sự kiện của ứng dụng và tôi chỉ xem đầu ra gỡ lỗi.

tôi thực hiện như sau thủ tục lưu trữ của tôi (SQL Server 2005), tôi mất một bảng hệ thống (master.dbo.spt_values) làm ví dụ:

set @logtext = 'select name, type from master.dbo.spt_values where number=6' 
--set @logtext = 'master.dbo.spt_values' 
SET @cmd = 'bcp ' + @logtext + ' out "c:\spt_values.dat" -U uId -P uPass -c' 
EXEC master..XP_CMDSHELL @cmd 

Vì vậy, khi tôi bỏ ghi chú thứ hai như mọi thứ hoạt động, một tập tin apprears trên C: \ drive ... nhưng nếu tôi coment nó trở lại chỉ để lại dòng đầu tiên, bất kỳ đầu ra được tạo ra.

Cách khắc phục sự cố này?

Trả lời

14

bcp out bảng xuất.

Để xuất một sử dụng truy vấn queryout thay - bạn sẽ cần phải quấn truy vấn của bạn trong "dấu ngoặc kép"

set @logtext = '"select name, type from master.dbo.spt_values where number=6"' 
--set @logtext = 'master.dbo.spt_values' 
SET @cmd = 'bcp ' + @logtext + ' queryout "c:\spt_values.dat" -U uId -P uPass -c' 
EXEC master..XP_CMDSHELL @cmd 

http://msdn.microsoft.com/en-us/library/ms162802.aspx