通过Powershell查询sql数据库-选择不同的不返回值

时间:2018-08-14 09:59:29

标签: sql powershell distinct

我希望有人对此有个快速的答案,因为我在网上找不到很多东西。

我正在通过Powershell远程执行sql命令。我有脚本,它可以工作,但是如果尝试“从customertable中选择客户”,它将返回正确的值。如果运行查询“ select different ....”,它将不返回任何值。

不同命令可以通过powershell运行吗?

1 个答案:

答案 0 :(得分:0)

这只是更长的PS脚本的片段,我用它来查询不同的服务器/实例以查找所需的信息。

function SQL_GetModules {
    param(
        [string]$DbName
    )

    $query = @"
        SELECT DISTINCT ISNULL BLAH BLAH BLAH
"@

    try {

        $result = Invoke-Sqlcmd -ServerInstance $DBServer -Database $DbName -Query $query -querytimeout ([int]::MaxValue) -MaxCharLength ([int]::MaxValue) -DisableVariables

    }
    catch [System.Exception] {
        Write-Error $_.Exception.Message
        return -1
    }

    if (!$result) { return 0 }
    else {
        $Modules = @()

        foreach ($row in $result) {
            $Modules += $row.SYSA_Module
        }

        return $Modules
    }

}

如果您的查询在SQL中有效,然后将其传递给Invoke_SQLcmd,然后运行它,它是否有效? AFAIK您不需要在更高版本的SQL中使用Import-Module sqlps,因为有新的PS SQL模块,也就是说已经安装了这些模块吗? https://docs.microsoft.com/en-us/sql/powershell/download-sql-server-ps-module?view=sql-server-2017