使用Invoke-SQLCmd并返回已删除/受影响的行数

时间:2013-06-12 06:44:20

标签: sql-server powershell

我有一个非常简单的powershell命令,其中$ query只是"从mytable中删除"

Invoke-sqlcmd -ServerInstance $databaseserver -Username $databaseuser -Password $databasepassword -Database $databasename -Query $query| Out-File -filePath $output

但是,这不会输出受影响的行数吗?

SQLCMD 中的等效项输出没有受影响的行:

& sqlcmd -S . -U $databaseuser -P $databasepassword -Q $query    -o $output

有没有办法让Invoke-sqlcmd返回行数?

1 个答案:

答案 0 :(得分:2)

您可以在查询后立即调用SQL中的ROWCOUNT函数功能来执行以下操作:

Select @@ROWCOUNT

有关ROWCOUNT @ http://technet.microsoft.com/en-us/library/ms187316(v=sql.90).aspx

的更多信息

此外,您可以在删除记录之前进行行计数,并在删除后执行另一行计数,然后执行差异。这仅适用于插入/删除的记录,不适用于更新的记录。

SELECT COUNT( my_table.my_col ) AS row_count