Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server BCP实用性:如何获取导入的记录数_Sql Server_Bcp - Fatal编程技术网

Sql server BCP实用性:如何获取导入的记录数

Sql server BCP实用性:如何获取导入的记录数,sql-server,bcp,Sql Server,Bcp,在bcp实用程序中,导入/导出时,命令行将显示复制的行数。 我试图得到那个号码,以便在另一个处理中使用,但我做不到。 命令行是: bcp AdventureWorks2012.HumanResources.Department out D:\Department_Test.txt -S SERVER_NAME -T -c 结果是: Starting Copy... 16 rows copied. .... 请帮我获取复制的行数 我尝试在命令行中使用FINDSTR查找复制的行,这可以解决该问

在bcp实用程序中,导入/导出时,命令行将显示复制的行数。 我试图得到那个号码,以便在另一个处理中使用,但我做不到。 命令行是:

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

Starting Copy...
16 rows copied. 
....
请帮我获取复制的行数

我尝试在命令行中使用FINDSTR查找复制的行,这可以解决该问题,但我想找到更好的解决方案

谢谢你拿着这个:

bcp AdventureWorks2012.HumanResources.Department out D:\Department_Test.txt -S SERVER_NAME -T -c
您正在提取整个表,因此可以尝试

bcp "SELECT count(*) FROM AdventureWorks2012.HumanResources.Department" queryout D:\Department_Rows.txt -S SERVER_NAME -T -c
这将把表中的记录数输出到一个单独的txt文件中

或者,您可以使用
BCPROWCOUNT

(返回受当前(或上次)BCP操作影响的行数。)

你可以读到这篇文章

这是一篇黑客文章

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.' 

看起来有人试图获取解决方案用于SQL Server的编号。我必须使用命令行来执行。我怎么做?谢谢