' ='附近的语法不正确在SQL语句中

时间:2014-08-15 09:01:45

标签: sql sql-server

我的查询是错误:Incorrect syntax near '='

"UPDATE EF_MOCCU_MAP_MAIN"+
" SET CAST(MONETARY_CLAIM AS NVARCHAR(1))= ? ," +  
" DATA_INPUT_SELECT=?"+
" WHERE COURT_UNIT_ID=? AND MOC_CODE=?";

最初我遇到了错误:

Conversion failed when converting the nvarchar value 'Y' to data type int

然后我像"SET CAST(MONETARY_CLAIM AS NVARCHAR(1))= ? "一样转换SQL,然后我收到错误的语法错误。

2 个答案:

答案 0 :(得分:1)

正如其他人所说,这是错误的。

SET CAST(MONETARY_CLAIM AS NVARCHAR(1)) = <something>

您可以将值设置为列,不能将值设置为任何表达式 它只是没有意义(就像在大多数编程语言中一样)。

答案 1 :(得分:0)

尝试:

SET MONETARY_CLAIM = CASE WHEN ISNULL(?,'N') = 'Y' THEN 1 ELSE 0 END

如果要收集参数/值&#39; Y&#39;,但将其发送到BIT或INT字段[MONETARY_CLAIM],则必须更改参数的数据类型以适合该字段。我建议你尝试使用案例表达。