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

简介:
+关注继续查看

本节书摘来自异步社区出版社《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
相关实践学习
使用交互方式创建数据表
本次实验主要介绍如何在RDS-SQLServer数据库中使用交互方式创建数据表。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
19天前
|
SQL
sql语言之子查询语句
sql语言之子查询语句
|
1月前
|
存储 SQL 缓存
MySQL 中一条 SQL 查询语句的执行过程
`SELECT id FROM table_a where id = 10` 这条 SQL 从执行到最后结果返回你知道都经历了哪些步骤么?
MySQL 中一条 SQL 查询语句的执行过程
|
2月前
|
SQL
Sql Server查询语句
Sql Server查询语句
|
3月前
|
SQL Oracle 关系型数据库
[MySQL]不允许你不会SQL语句之查询语句
[MySQL]不允许你不会SQL语句之查询语句
70 0
|
7月前
|
SQL Oracle 前端开发
Mysql常用SQL查询语句优化方法
当系统的吞吐量变大后,数据读写速度会变得原来越慢,因此要想办法对SQL语句进行优化。
170 0
|
8月前
|
SQL 移动开发 数据库
常用sql查询语句
常用sql查询语句
44 0
常用sql查询语句
|
9月前
|
SQL NoSQL C#
基于C#的ArcEngine二次开发32:属性sql查询语句与IMap,ILayer,IFeatureLayer,IFeatureClass关系
基于C#的ArcEngine二次开发32:属性sql查询语句与IMap,ILayer,IFeatureLayer,IFeatureClass关系
基于C#的ArcEngine二次开发32:属性sql查询语句与IMap,ILayer,IFeatureLayer,IFeatureClass关系
|
9月前
|
SQL C# 数据库
SQL进阶查询语句实战(附例题)
前言 上期我们介绍了一些实用的查询操作,包含了简单条件查询以及带子查询的查询。本期我们继续升级,看看更多可能的查询操作变化。
|
10月前
|
SQL
sql常见查询语句
sql常见查询语句
66 0
sql常见查询语句
|
11月前
|
SQL Java 关系型数据库
SQL 的查询语句
说到查询,我们要回答两个问题:1.查询什么?2.从哪查询?我们可以使用 SQL 的 SELECT 子句来表达要查询什么。使用 FROM 子句来表达从哪查询。 举个例子,我们要从数据库 order_manager 的 products 表中查询商品名称信息。在查询之前,我们首先来看下导航面板,现在 sys 数据库的字体是加粗的,这表明当前选中的数据库是 sys。
103 0
相关产品
云迁移中心
推荐文章
更多