[英]Running SQL Server commands from Powershell?
我正在编写Powershell脚本来使用SQL Server自动化某些操作,其中一部分需要以管理员身份将本地帐户添加到数据库中。
create login [MYDOMAIN\myusername] from windows
go
sp_addsrvrolemember [MYDOMAIN\myusername], 'sysadmin'
go
这需要通过提升的sqlcmd
命令运行。
我是Powershell和SQL Server的新手,所以谢谢您的帮助。
您正在寻找Invoke-Sqlcmd cmdlet
。
将SQL Server命令(以下命令)保存在文件中,并将其另存为SQLInput.sql
create login [MYDOMAIN\myusername] from windows
go
sp_addsrvrolemember [MYDOMAIN\myusername], 'sysadmin'
go
然后,您可以使用Run As Administrator
身份Run As Administrator
来运行PowerShell命令提示符,并运行以下命令,如下所示:
Invoke-Sqlcmd -InputFile "C:\SQLInput.sql" | Out-File -filePath "C:\SQLOutput.rpt"
编辑:
您可以使用-Query
选项以类似方式内联运行查询
Invoke-Sqlcmd -Query "create login [MYDOMAIN\myusername] from windows;"
捕获响应是为了确保查询是否成功运行。 您可以使用-AbortOnError
开关; 错误时中止命令。
否则,您可以使用Try .. Catch .. Finally
在PowerShell中像
Try
{
Invoke-Sqlcmd -Query "create login [MYDOMAIN\myusername] from windows;"
}
Catch
{
[system.exception]
"caught a system exception"
}
Finally
{
"end of script"
}
在此处阅读有关Powershell中异常处理的更多信息
PowerShell提供了一些流行的TSQL选项
与Invoke-SqlCmd2一起使用的示例(通常是TSQL的go命令):
Invoke-Sqlcmd2 -ServerInstance SomeInstance -Database SomeDatabase -Query "create login [MYDOMAIN\myusername] from windows;"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.