如何使用powershell sqlserver smo程序集打印受影响行的输出

时间:2014-01-23 05:17:25

标签: powershell

大家好我是PowerShell的新手。我正在寻找一个脚本,它将使用smo程序集从UPDATE,INSERT,DELETE tsql打印出受影响的行。

我尝试在网上搜索并找到一些从C#编写的解决方案。 http://social.msdn.microsoft.com/Forums/sqlserver/en-US/eb9071c9-c8c2-47db-b660-2ad044af0ede/how-do-i-get-the-output-from-databaseexecutenonquery?forum=sqlsmoanddmo 我不知道如何将它转换为powershell。

下面是一个使用smo执行tsql update的powershell脚本。

$null = [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo")
$null = [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoEnum ")
$null = [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
$Server = new-object Microsoft.SqlServer.Management.Smo.Server
$db = $server.Databases["TESTDB"]
$result = $db.ExecuteNonQuery("UPDATE Persons set City = 'Cavite' where FirstName = 'Miguel'")

希望任何人都可以提供帮助。感谢。

1 个答案:

答案 0 :(得分:0)

尝试从ExecuteNonQuery()更改为ExecuteWithResults()并添加select @@ rowcount命令。

 $result = $db.ExecuteWithResults("UPDATE Persons Set City = 'Cavite' where FirstName = 'Miguel'; Select @@ROWCOUNT;")
$result.Tables[0].Rows[0]  # to output the value of @@rowcount