我正在尝试从 powershell 运行 sql 脚本 .sql 文件并将结果保存到 .sql 文件中。
概述:SQL 数据库恢复需要用户和权限备份预恢复,一旦恢复完成,我们需要在数据库上执行输出(我们预恢复的用户权限备份)。
这是我的脚本,当我执行时我没有看到任何输出
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$DataSet = New-Object System.Data.DataSet
$MyQuery = get-content “C:\Users\Security.sql”;
$SqlConnection.ConnectionString = “Server = DBATest; Database = Testdb; Integrated Security = True”
$SqlCmd.CommandText = $MyQuery;
$SqlCmd.Connection = $SqlConnection
$SqlAdapter.SelectCommand = $SqlCmd
$SqlAdapter.Fill($DataSet)|out-null
$DataSet.Tables[0] | out-file C:\users\outputuser.sql
有人能指出我正确的方向吗?提前致谢
如果您安装了 SQL Server 管理工具(2008 或更高版本),这将变得更加容易。
add-pssnapin SqlServerCmdletSnapin100;
$myData = invoke-sqlcmd -InputFile "c:\users\security.sql" -serverinstance dbatest -database testdb;
$mydata | out-file c:\users\outputuser.sql;
Remove-PSSnapin SqlServerCmdletSnapin100;
如果您安装了 2012(或更高版本),则可以跳过管理单元并导入sqlps
module:
push-location;
import-module sqlps;
Pop-Location;
$myData = invoke-sqlcmd -InputFile "c:\users\security.sql" -serverinstance dbatest -database testdb;
$mydata | out-file c:\users\outputuser.sql;
remove-module sqlps;
我不能说输出文件是否为您提供了您正在寻找的格式,因为您已经指定了您正在寻找的内容,也没有显示查询本身。您可能想将其导出为 CSV 格式,或者使用format-table
进一步构造纯文本,或转换为 HTML。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)