2013-06-12 26 views
1

我有一個非常簡單的PowerShell命令,其中$查詢只是「從MYTABLE刪除」使用調用-SQLCMD和返回刪除的行數/影響

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返回的行數?

+0

爲什麼不寫你自己的Invoke-SqlCmd來調用.NET呢?應該可以使用[SqlCommand.ExecuteNonQuery](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx)。 – Neolisk

+0

或者只是繼續使用sqlcmd.exe,我想你會發現sqlcmd.exe中的其他功能從invoke-sqlcmd中丟失 –

回答

1

你可以調用SQL行數函數功能查詢後立即執行以下操作:

Select @@ROWCOUNT 

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

除了上ROWCOUNT信息,你可以採取之前的行數刪除記錄並在刪除後做另一行計數然後做差異。這隻適用於插入/刪除的記錄,不適用於更新的記錄。

SELECT COUNT(my_table.my_col) AS row_count 
相關問題