嘿,我正在使用iBATIS和SQL Server Compact Edition 3.5并尝试进行子选择
INSERT INTO FORMINSTANCE (ID, ID_FORM)
SELECT #ID#, f.ID
FROM FORM f
WHERE ID_PROCESS='10804'
当我提交交易时,我得到SqlCeException
(SSCE_M_QP_PARAMETERNOTALLOWED
)。
符号'@
'位置错误。我认为这是#{1}中无法预测的#ID#。 #ID#不是列的名称,它是应插入FORMINSTANCE的值我该如何解决这个问题?
TY
答案 0 :(得分:1)
如果列名的#部分......
INSERT INTO FORMINSTANCE (ID, ID_FORM)
SELECT [#ID#], f.ID
FROM FORM f
WHERE ID_PROCESS='10804'
如果由于一些奇怪的原因你想要在#1位选择一个动态列(不是我真的认为这是你要做的,但无论如何),你可以逃脱:
INSERT INTO FORMINSTANCE (ID, ID_FORM)
SELECT
CASE
WHEN @ID = 'foo' THEN foo
WHEN @ID = 'bar' THEN bar
ELSE NULL
END,
f.ID
FROM
FORM f
WHERE
ID_PROCESS='10804'
答案 1 :(得分:0)
如果#ID#不在FORM表中(即参数),我认为你不能。即使#ID#是@ID的标准参数格式,SQL Server CE也不支持该位置的命名参数。