《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.17 执行查询语句SQL脚本...

    xiaoxiao2024-04-16  8

    本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第2章,第2.17节,作者:【加拿大】Donabel Santos,更多章节内容可以访问云栖社区“异步社区”公众号查看。

    2.17 执行查询语句/SQL脚本

    本方案描述了如何用PowerShell执行手写的查询语句或SQL脚本。

    2.17.1 准备

    在C:Temp目录下创建一个文件SampleScript.sql。它包含:

    SELECT * FROM Person.Person

    2.17.2 如何做…

    1.通过“Start | Accessories | Windows PowerShell | Windows PowerShell ISE”打开PowerShell控制台。

    2.导入SQLPS模块,创建一个新的SMO服务器对象。

    #import SQL Server module Import-Module SQLPS –DisableNameChecking #replace this with your instance name $instanceName = "KERRIGAN" $server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $instanceName

    3.添加如下脚本并运行。

    $dbName = "AdventureWorks2008R2" $db = $server.Databases[$dbName] #execute a passthrough query, and export to a CSV file Invoke-Sqlcmd ` -Query "SELECT * FROM Person.Person" ` -ServerInstance "$instanceName" ` -Database $dbName | Export-Csv -LiteralPath "C:\Temp\ResultsFromPassThrough.csv" ` -NoTypeInformation #execute the SampleScript.sql, and display results to screen Invoke-SqlCmd ` -InputFile "C:\Temp\SampleScript.sql" ` -ServerInstance "$instanceName" ` -Database $dbName | Select FirstName, LastName, ModifiedDate | Format-Table

    2.17.3 如何实现…

    开始学习Invoke-Sqlcmd cmdlet。我们将会在本书中大量使用。

    你可以使用这个cmdlet运行T-SQL代码或脚本,以及被SQLCMD工具集支持的命令,你也可以运行XQuery代码。Invoke-Sqlcmd是你的全能SQL工具集cmdlet。

    获得更多关于Invoke-Sqlcmd的信息,请使用Get-Help cmdlet。

    Get-Help Invoke-Sqlcmd –Full

    在本方案中,我们看到两种使用Invoke-Sqlcmd的方法。第一种是定义一个执行的查询语句。对此,你可以使用-Query选项。

    Get-Help Invoke-Sqlcmd -Full In this recipe, we looked at two ways of using Invoke-Sqlcmd. The first is by specifying a query to run. For this, you should use the –Query option: #execute a passthrough query, and export to a CSV file Invoke-Sqlcmd ` -Query "SELECT * FROM Person.Person" ` -ServerInstance "$instanceName" ` -Database $dbName | Export-Csv -LiteralPath "C:\Temp\ResultsFromPassThrough.csv" ` -NoTypeInformation

    第二种方法,您需要运行一个SQL脚本,将参数切换为-InputFile。

    #execute the SampleScript.sql, and display results to screen Invoke-SqlCmd ` -InputFile "C:\Temp\SampleScript.sql" ` -ServerInstance "$instanceName" ` -Database $dbName | Select FirstName, LastName, ModifiedDate | Format-Table
    最新回复(0)