小编Pol*_*usB的帖子

使用Windows身份验证或SQL身份验证调用-SqlCmd

这段代码完成了我的需要.但我试图使用某种交换机在同一行上用Windows身份验证或SQL身份验证替换对Invoke-SqlCmd的调用.有人可以用更优雅的方式帮助我吗?我在想Invoke-Expression但是我没有得到任何好的结果.

Function MyFunction{
    Param
    (
        [string]$S = "MyServer",
        [string]$U,
        [string]$P
    )
    # Find the SQL Engine version
    $Q = "select serverproperty('ProductVersion')"

    if($U)
    {
        $R = Invoke-Sqlcmd -ServerInstance $S -Query $Q -Username $U -Password $P -Verbose
        Write-Host "SQL Athenticated"
    }
    else
    {
        $R = Invoke-Sqlcmd -ServerInstance $S -Query $Q -Verbose
        Write-Host "Windows Athenticated"
    }
    return $R.column1
}
Run Code Online (Sandbox Code Playgroud)

这是我的Invoke-Expression.它只是不起作用......

Invoke-Expression "$R = Invoke-Sqlcmd -ServerInstance $S -Query $Q $(if($true){""-Username $U -Password $P""})"
Run Code Online (Sandbox Code Playgroud)

这是我正在寻找的优雅解决方案.谢谢迈克:

Function MyFunction{
    Param
    (
        [string]$S = "xps15",
        [string]$U,
        [string]$P
    ) …
Run Code Online (Sandbox Code Playgroud)

sql-server powershell powershell-3.0

2
推荐指数
1
解决办法
6999
查看次数

标签 统计

powershell ×1

powershell-3.0 ×1

sql-server ×1