你如何从 PowerShell 运行 SQL Server 查询?
你如何从 PowerShell 运行 SQL Server 查询?
有没有办法在我的本地计算机上使用Powershell对SQL Server执行任意查询?
admin 更改状态以发布 2023年5月21日
您可以使用Invoke-Sqlcmd
cmdlet。
Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance "MyComputer\MyInstance"
对于其他需要仅使用标准.NET和PowerShell进行此操作(无需安装其他SQL工具)的人,这是我使用的函数:
function Invoke-SQL { param( [string] $dataSource = ".\SQLEXPRESS", [string] $database = "MasterData", [string] $sqlCommand = $(throw "Please specify a query.") ) $connectionString = "Data Source=$dataSource; " + "Integrated Security=SSPI; " + "Initial Catalog=$database" $connection = new-object system.data.SqlClient.SQLConnection($connectionString) $command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection) $connection.Open() $adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command $dataset = New-Object System.Data.DataSet $adapter.Fill($dataSet) | Out-Null $connection.Close() $dataSet.Tables }
我使用这个函数已经很长时间了,我不知道哪些部分是谁编写的。这是从其他示例中提炼出来的,但简化了清晰和只包含所需的内容,没有额外的依赖项或特性。
我经常使用并分享这个功能,以至于我已经将其转化为一个脚本模块在GitHub上,因此您现在可以进入模块目录并执行git clone https://github.com/ChrisMagnuson/InvokeSQL
,从那时起,当您使用它时,invoke-sql将自动加载(假设您使用PowerShell v3或更高版本)。