sql - MacOS 上的 Azure PowerShell - 运行脚本文件
问题描述
我在 MacOS 上使用 PowerShell 6.2。我正在尝试在目标数据库上运行 *.sql 文件,但似乎找不到合适的模块。
我的目标是将生产数据库复制到沙盒副本中-然后清除登录名/权限并设置一个新的。我在用着:
New-AzSqlDatabaseCopy -ResourceGroupName "ProdRG" -ServerName "ProdSrv" -DatabaseName "ProdDB" -CopyResourceGroupName "SandRG" -CopyServerName "SandServ" -CopyDatabaseName "SandDB"
如何在新实例上执行 SQL 脚本?
解决方案
对于您的本地实例
您可以使用以下命令将 SQL 模块 sqlps 导入当前上下文:
Import-Module "sqlps" -DisableNameChecking
该-DisableNameChecking
参数用于忽略在没有 PowerShell 从库中推荐的“已批准”名词-动词命名方案的情况下导入模块时可能会收到的警告。
然后你可以运行:
Invoke-Sqlcmd -ServerInstance ServerName -inputFile "yoursqlfile.sql" -Database "your database"
针对该特定数据库运行 sql 脚本。
参考: https ://docs.microsoft.com/en-us/powershell/module/sqlserver/invoke-sqlcmd?view=sqlserver-ps
对于 Azure Powershell 中的 Azure 实例:
您可以运行以下命令(在下面链接的 SO 答案中找到):
$connectionString = "Data Source=MyDataSource;Initial Catalog=MyDB;User ID=user1;Password=pass1;Connection Timeout=90"
$connection = New-Object -TypeName System.Data.SqlClient.SqlConnection($connectionString)
$query = [IO.File]::ReadAllText("C:\...\TestSQL.sql")
$command = New-Object -TypeName System.Data.SqlClient.SqlCommand($query, $connection)
$connection.Open()
$command.ExecuteNonQuery()
$connection.Close()
推荐阅读
- git - git - 远程:致命:你在一个尚未出生的分支上,使用接收后挂钩
- ios - UIlabel 中的 UITapGestureRecognizer 错误
- reactjs - DatePicker form material-ui-redux-form + Redux Form - 启用文本输入
- node.js - Angular Universal 6 SSR 在本地工作,但不在服务器上
- azure - 天蓝色的白名单负载均衡器?
- javascript - 如何将百分比添加到 javascript 中的百分比宽度?
- javascript - 在 Typescript 中使用异步函数返回值
- protractor - sendKeys() 仅传递部分值或无法将日期输入输入日期字段
- ios - 指定的捆绑 iOS 应用程序中不存在许可证文件
- android - Android 中的 Facemark 或 Kazemi