我正在將一些軟件中的存儲過程轉換爲SQL維護中的SQL Server到Informix SQL,並且問題很多。無法將ORDER BY命令添加到存儲過程
基本上我是逐行轉換每個部分,直到我轉換完整個東西。
我有以下CREATE PROCEDURE
:
CREATE PROCEDURE ifxdbase:dc_buildSP (WorkID INT, CompNo smallint)
CREATE TEMP TABLE Items
(
Code smallint,
Qty int,
Total int
);
INSERT INTO Items
SELECT
tblDetails.code,
tblDetails.quantity,
tblHead.quantity
FROM
tblHead
INNER JOIN tblDetails ON (tblDetails.compno = tblDetails.compno AND tblDetails.id_num = tblHead.id_num)
WHERE tblHead.compno = CompNo AND tblHead.id_num = WorkID;
--ORDER BY tblDetails.code;
DROP TABLE Items;
END PROCEDURE
既然這樣,這工作得很好,但是當我取消對該行--ORDER BY tblDetails.seqno;
(並從上一行的分號),我收到了「-201語法錯誤發生了「錯誤。
基本上tblHead
是一系列訂單標題,tblDetails
是每個訂單的詳細信息表。選擇並加入數據工作正常,嘗試命令它失敗。
排序應該從原來的SELECT,IIRC什麼工作,所以我看不出有什麼可以去錯了,這裏...
爲什麼你需要通過將數據插入表時的順序? – 2011-05-16 11:36:10
問題不在於存儲過程,問題是在INSERT INTO中不允許使用ORDER BY clausule .... SELECT結構 – Doliveras 2011-05-16 11:36:26