Powershell 使用SQLCMD连接更新中的变量

Powershell 使用SQLCMD连接更新中的变量,powershell,sqlcmd,Powershell,Sqlcmd,我试图在SQLCMD中的查询中使用Concat,但没有效果 有什么可能: Invoke-Sqlcmd ` -Database $database ` -ServerInstance $server ` -username $dbusername ` -password $dbpassword ` -Query "UPDATE $table SET $x=Concat($x, $y) where id=$id" 我得到: 调用Sqlcmd:靠近“')”的语

我试图在SQLCMD中的查询中使用Concat,但没有效果

有什么可能:

Invoke-Sqlcmd `
    -Database $database `
    -ServerInstance $server `
    -username $dbusername `
    -password $dbpassword `
    -Query "UPDATE $table SET $x=Concat($x, $y) where id=$id"
我得到:

调用Sqlcmd:靠近“')”的语法不正确


您可以尝试自己组合字符串:

if (-not $x)
{
    $x = [string]::Empty
}

if (-not $y)
{
    $y = [string]::Empty
}

Invoke-Sqlcmd `
    -Database $database `
    -ServerInstance $server `
    -username $dbusername `
    -password $dbpassword `
    -Query "UPDATE $table SET $x=$($x + $y) where id=$id"

您可以尝试自己组合字符串:

if (-not $x)
{
    $x = [string]::Empty
}

if (-not $y)
{
    $y = [string]::Empty
}

Invoke-Sqlcmd `
    -Database $database `
    -ServerInstance $server `
    -username $dbusername `
    -password $dbpassword `
    -Query "UPDATE $table SET $x=$($x + $y) where id=$id"

什么是$x和$y?你只是想合并这两个字符串吗?我同意@MartinBrandl的观点,请解释你试图实现的目标,而不仅仅是你尝试时出现的错误。$x是一个可空字符串,$y基本上是$x来自表,$y来自文件,我必须将两者连接起来。什么是$x和$y?你只是想将这两个字符串组合起来吗?我同意@MartinBrandl的观点,请解释你试图实现的目标,而不仅仅是你试图实现的错误。$x是一个可为空的字符串,$y基本上是$x来自表,$y来自文件,我必须将两者连接起来。