我的查询是错误: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,然后我收到错误的语法错误。
答案 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],则必须更改参数的数据类型以适合该字段。我建议你尝试使用案例表达。