《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》—— 使用Invoke-Sqlcmd实施批量导出

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

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

2.18 使用Invoke-Sqlcmd实施批量导出

本方案描述了如何用PowerShell和Invoke-Sqlcmd将表内容导出到CSV文件。

2.18.1 准备

访问AdventureWorks2008R2数据库,我们将使用Person.Person表。

如果你的系统中没有C:Temp目录,创建C:Temp目录。

2.18.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.添加如下脚本并运行。

#database handle
$dbName = "AdventureWorks2008R2"
$db = $server.Databases[$dbName]
#export file name
$exportfile = "C:\Temp\Person_Person.csv"
$query = @"
SELECT 
  * 
FROM 
  Person.Person
"@
Invoke-Sqlcmd -Query $query -ServerInstance "$instanceName" -Database $dbName |
Export-Csv -LiteralPath $exportfile –NoTypeInformation

2.18.3 如何实现…

在这个方案中,我们将结果导出到CSV文件。本方案的导出方法中有两个核心部分。

第一部分是使用Invoke-Sqlcmd cmdlet执行查询。我们指定实例和数据库,并通过该cmdlet发送查询语句给SQL Server。

Invoke-Sqlcmd -Query $query -ServerInstance "$instanceName" -Database $dbName |
Export-Csv -LiteralPath $exportfile -NoTypeInformation

第二部分是通过管道将结果传输到Export-Csv cmdlet,并指定存储结果的文件名。我们也指定了-NoTypeInformation,所以在文件的第一行我们将忽略#TYPE .NET信息类型。

Invoke-Sqlcmd -Query $query -ServerInstance "$instanceName" -Database $dbName |
Export-Csv -LiteralPath $exportfile –NoTypeInformation

2.18.4 请参阅…

执行查询语句/SQL脚本方案

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
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
相关文章
|
存储 数据库
Navicate 如何导出数据库中的存储过程、事件、视图等?
Navicate 如何导出数据库中的存储过程、事件、视图等?
658 0
|
SQL 关系型数据库 MySQL
|
4月前
|
数据库 数据安全/隐私保护
【YashanDB知识库】exp 导出数据库时,报错YAS-00402
【YashanDB知识库】exp 导出数据库时,报错YAS-00402
【YashanDB知识库】exp 导出数据库时,报错YAS-00402
|
5月前
|
关系型数据库 数据库连接 数据库
循序渐进丨MogDB 中 gs_dump 数据库导出工具源码概览
通过这种循序渐进的方式,您可以深入理解 `gs_dump` 的实现,并根据需要进行定制和优化。这不仅有助于提升数据库管理的效率,还能为数据迁移和备份提供可靠的保障。
132 6
|
5月前
|
数据库 数据安全/隐私保护
【YashanDB 知识库】exp 导出数据库时,报错 YAS-00402
**简介:** 在执行数据导出命令 `exp --csv -f csv -u sales -p sales -T area -O sales` 时,出现 YAS-00402 错误,提示“Connection refused”。原因是数据库安装时定义的 IP 地址或未正确配置导致连接失败。解决方法是添加 `--server-host ip:port` 参数,例如 `exp --csv -f csv -u sales -p sales -T area -O sales --server-host 192.168.33.167:1688`。
|
7月前
|
关系型数据库 MySQL Linux
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
294 8
|
SQL 关系型数据库 数据库
数据库导出sql
\导出sql\这样的文件通常包含创建表、索引、触发器等的SQL语句,以及插入数据的SQL语句,从而可以在另一个数据库系统上重新创建整个数据库。 以下是一些流行的数据库管理系统(DBMS)如何导出
|
12月前
|
关系型数据库 MySQL 数据库
navicat 查看,设计并导出数据库 ER图
navicat 查看,设计并导出数据库 ER图
1978 5
|
11月前
|
SQL 关系型数据库 MySQL
如何在 MySQL 或 MariaDB 中导入和导出数据库
如何在 MySQL 或 MariaDB 中导入和导出数据库
936 0
|
11月前
|
JSON NoSQL MongoDB
在Ubuntu 14.04上如何导入和导出MongoDB数据库
在Ubuntu 14.04上如何导入和导出MongoDB数据库
62 0

热门文章

最新文章