INSERT INTO OUTPUTDETAIL(OUTPUTORDERID,ORDERBOOKID,BOOKNAME,BOOKPRICE,PARTCOUNT,ORDERNUMBER,BOOKWEIGHT,POSITIONID,CHINASORT,STOCKDISCOUNT,INSIDEDISCOUNT,EXTERNALDISCOUNT,STORAGE) SELECT @OUTPUTORDERID,@ORDERBOOKID,BOOKNAME,BOOKPRICE,PARTCOUNT,@ORDERNUMBER,BOOKWEIGHT,POSITIONID,CHINASORT,STOCKDISCOUNT,INSIDEDISCOUNT,EXTERNALDISCOUNT,STORAGE FROM X_VW_BookDetail WHERE ORDERBOOKID=@ORDERBOOKID AND FATHERID=@FATHERID请问这一句中的变量 例如我传入的@OUTPUTORDERID='C2255' 结果编程以下形式后,提示找不到列名“C2255”,这一句如何写了? INSERT INTO OUTPUTDETAIL(OUTPUTORDERID,ORDERBOOKID,BOOKNAME,BOOKPRICE,PARTCOUNT,ORDERNUMBER,BOOKWEIGHT,POSITIONID,CHINASORT,STOCKDISCOUNT,INSIDEDISCOUNT,EXTERNALDISCOUNT,STORAGE) SELECT '+@OutputOrderID+','+STR(@ORDERBOOKID)+',BOOKNAME,BOOKPRICE,PARTCOUNT,'+STR(@ORDERNUMBER)+',BOOKWEIGHT,POSITIONID,CHINASORT,STOCKDISCOUNT,INSIDEDISCOUNT,EXTERNALDISCOUNT,STORAGE FROM X_VW_BookDetail WHERE ORDERBOOKID='+STR(@ORDERBOOKID)+' AND FATHERID='+STR(@FATHERID)+'
列名,你不需要以参数传进去,而应该是拼字串. 即,你生成的语句应该是INSERT INTO OUTPUTDETAIL... SELECT C2255,.... FROM where orderbookid=...
即,即使外部定义了 @state
内部也定义了 @state,他们指向不同的内存空间.做法是使用sp_executeSQL,roy_88已经说了,我不再累赘了.
INSERT INTO OUTPUTDETAIL(OUTPUTORDERID,ORDERBOOKID,BOOKNAME,BOOKPRICE,PARTCOUNT,ORDERNUMBER,BOOKWEIGHT,POSITIONID,CHINASORT,STOCKDISCOUNT,INSIDEDISCOUNT,EXTERNALDISCOUNT,STORAGE)
SELECT @OUTPUTORDERID,@ORDERBOOKID,BOOKNAME,BOOKPRICE,PARTCOUNT,@ORDERNUMBER,BOOKWEIGHT,POSITIONID,CHINASORT,STOCKDISCOUNT,INSIDEDISCOUNT,EXTERNALDISCOUNT,STORAGE FROM X_VW_BookDetail
WHERE ORDERBOOKID=@ORDERBOOKID AND FATHERID=@FATHERID请问这一句中的变量 例如我传入的@OUTPUTORDERID='C2255'
结果编程以下形式后,提示找不到列名“C2255”,这一句如何写了?
INSERT INTO OUTPUTDETAIL(OUTPUTORDERID,ORDERBOOKID,BOOKNAME,BOOKPRICE,PARTCOUNT,ORDERNUMBER,BOOKWEIGHT,POSITIONID,CHINASORT,STOCKDISCOUNT,INSIDEDISCOUNT,EXTERNALDISCOUNT,STORAGE)
SELECT '+@OutputOrderID+','+STR(@ORDERBOOKID)+',BOOKNAME,BOOKPRICE,PARTCOUNT,'+STR(@ORDERNUMBER)+',BOOKWEIGHT,POSITIONID,CHINASORT,STOCKDISCOUNT,INSIDEDISCOUNT,EXTERNALDISCOUNT,STORAGE FROM X_VW_BookDetail
WHERE ORDERBOOKID='+STR(@ORDERBOOKID)+' AND FATHERID='+STR(@FATHERID)+'
即,你生成的语句应该是INSERT INTO OUTPUTDETAIL...
SELECT C2255,.... FROM
where orderbookid=...