使用布尔值的Powershell查询中的SQL ExecuteNonQuery错误

时间:2017-06-26 18:48:03

标签: sql-server powershell

我的PowerShell脚本中出现以下错误:

  

使用“0”参数调用“ExecuteNonQuery”的异常:“无效的列名'False'。

and its

作为声明的一部分,我在输入“False,False”的地方显然做错了。我尝试了所有大写字母,小写字母,0和1,没有任何作用。当我使用Write-Host $ sql将它写入powershell命令窗口时,它看起来很好。

1 个答案:

答案 0 :(得分:2)

Sql Server(与大多数其他数据库一样)没有真正的布尔类型。没有False。它的bit类型的值为0(false)和1(true)。我还看到char(1)(即:'Y''N')和DateTime类型(其中NULL为false,其他任何值都是该字段的日期变得真实)用作流行的替代品。

虽然我在这里,但这段代码看起来很吓人。 Sql Injection是一个真实的东西,它是一个大问题。甚至是一些良好的数据,例如一些姓氏" O' Brien"可以大大抛弃这个查询。你需要研究parameterized queries。至少,查看查询文本,我怀疑$migrationdate值需要单引号。