加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Powershell SQL SELECT输出到变量

发布时间:2020-12-12 06:46:30 所属栏目:MsSql教程 来源:网络整理
导读:我正在调用查询SQL表的函数.我只需要一个细胞的结果. 我无法成功地将单元格数据检索到函数中的变量中. 例如,如果我有一个包含以下内容的表: FeedID Name Address 15 Bill Jones 我需要将FeedID值’15’捕获到变量中. 我的SQL语句只捕获FeedID,但我不知道如何
我正在调用查询SQL表的函数.我只需要一个细胞的结果.
我无法成功地将单元格数据检索到函数中的变量中.

例如,如果我有一个包含以下内容的表:

FeedID    Name    Address
    15        Bill    Jones

我需要将FeedID值’15’捕获到变量中.
我的SQL语句只捕获FeedID,但我不知道如何提取值

这是我到目前为止:

function Invoke-SQL {
    param(
    [string] $dataSource = "10.0.100.1",[string] $database = "Database123",[string] $sqlCommand = $("SELECT [FeedID] FROM [dbo].[FeedList] WHERE [FeedFileName] = 'filename.txt'")
    )

    $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
    write-output $adapter.Fill($dataSet) | Out-Null

    $connection.Close()
    $dataSet.Tables
    }

    $FeedID = Invoke-SQL
    $FeedID

解决方法

或者,如果您要查找简单的返回值而不是表以便稍后处理,则可以使用以下代码.
[string] $Server= "10.0.100.1",[string] $Database = "Database123",[string] $SQLQuery= $("SELECT [FeedID] FROM [dbo].[FeedList] WHERE [FeedFileName] = 'filename.txt'")

function GenericSqlQuery ($Server,$Database,$SQLQuery) {
    $Connection = New-Object System.Data.SQLClient.SQLConnection
    $Connection.ConnectionString = "server='$Server';database='$Database';trusted_connection=true;"
    $Connection.Open()
    $Command = New-Object System.Data.SQLClient.SQLCommand
    $Command.Connection = $Connection
    $Command.CommandText = $SQLQuery
    $Reader = $Command.ExecuteReader()
    while ($Reader.Read()) {
         $Reader.GetValue($1)
    }
    $Connection.Close()
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读