2014-09-11 35 views
1

在bcp實用程序中,導入/導出時,命令行會顯示我們複製的行數。 我試着讓這個數字在另一個處理中使用,但我不能。 的命令行是:BCP Ultility:如何獲取導入的記錄數

bcp AdventureWorks2012.HumanResources.Department out D:\Department_Test.txt -S SERVER_NAME -T -c 

結果:

Starting Copy... 
16 rows copied. 
.... 

請幫我拿到複製的行數。

我嘗試在命令行中使用FINDSTR來查找行復制,它可以解決這個問題,但我想找到一個更好的解決方案。

感謝

+0

看來有人試圖讓人數太多http://www.sqlservercentral.com/Forums/Topic681028-338-1.aspx – Darka 2014-09-11 07:41:10

+0

該解決方案使用的SQL Server。我必須使用命令行來執行。我該怎麼做?謝謝! – 2014-09-11 07:49:53

回答

0

有鑑於此:

bcp AdventureWorks2012.HumanResources.Department out D:\Department_Test.txt -S SERVER_NAME -T -c 

您extracing整個表的,因此,你可以嘗試

bcp "SELECT count(*) FROM AdventureWorks2012.HumanResources.Department" queryout D:\Department_Rows.txt -S SERVER_NAME -T -c 

這將輸出的記錄數在表中一個單獨的txt文件。

或替代地 - 這可能是更好的 - 你可以使用BCPROWCOUNT

(返回受當前(或上次)BCP操作的行數。)

你可以閱讀那here

1

這是一個黑客攻擊。

DECLARE @output TABLE (id INT IDENTITY, command NVARCHAR(256)) 

Declare @sql varchar(8000)='bcp AdventureWorks2012.HumanResources.Department out D:\Department_Test.txt -S SERVER_NAME -T -c' 

INSERT INTO @output 
exec master..xp_cmdshell @sql 

SELECT cast(Replace(command,' rows copied.','') as int) FROM @output where command like '% rows copied.'