您正在尋找Invoke-Sqlcmd cmdlet
。
在文件中保存您的SQL Server命令(下面的),並保存爲SQLInput.sql
create login [MYDOMAIN\myusername] from windows
go
sp_addsrvrolemember [MYDOMAIN\myusername], 'sysadmin'
go
然後,你可以用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中Here
有沒有一個好辦法做到這一點,沒有一個單獨的文件?劇本的目的是協助入職,所以我想盡可能將所有內容都保存在一個地方。能夠讀取SQL Server對命令的響應的獎勵點數。 – Benjin 2014-09-30 18:54:23
查看編輯答案。閱讀更多MSDN以瞭解更多信息。 – Rahul 2014-09-30 19:21:16