Jeg*_*n.M 6 windows sql-server powershell
我们知道我们可以使用 sql 查询窗口从数据库中获取值,例如“ select * from....”。有没有办法通过powershell方式获得价值。我找到了数据库表本身的方法,但没有找到值。
前任:
Set-location SQLserver:\sql\default\localhost\databases\database\tablesGet-childitem
Run Code Online (Sandbox Code Playgroud)
上面的命令为我提供了数据库中的表,但我如何从中获取值。
小智 8
你可以用这个
$connectionString = “Server=$dataSource;uid=$user; pwd=$pwd;Database=$database;Integrated Security=False;”
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString
$connection.Open()
$query = “SELECT * FROM Tab”
$command = $connection.CreateCommand()
$command.CommandText = $query
$result = $command.ExecuteReader()
Run Code Online (Sandbox Code Playgroud)
最简洁直接的选项是Invoke-SqlCommand
$results = Invoke-Sqlcmd -ServerInstance "mySqlServer" -Database "myDatabase" -Query "SELECT * FROM MyTable"
Run Code Online (Sandbox Code Playgroud)
SQL Server Powershell 提供程序使用 SMO 来公开数据库对象层次结构。获得 SMO 子项后,您可以调用该对象上的相应 SMO 方法。
SMO 数据库 ExecuteQueryWithResults 方法可用于在给定数据库的上下文中执行查询。获取所需的数据库项并调用此方法以返回包含结果的 DataSet 对象。然后根据需要从 DataSet 中检索数据。
下面是从 SMO 参考 (( https://msdn.microsoft.com/en-us/library/ms205775.aspx ) 中收集的一个示例,可以从数据库节点的上下文中运行:
$db = Get-Item SomeDatabase
$dt = $db.ExecuteWithResults("SELECT * FROM sys.objects;")
$dt.Tables[0] | Format-Table
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51792 次 |
| 最近记录: |