1、拆分字符串
IF EXISTS(SELECT NAME FROM sysobjects
WHERE NAME = N''procInsertOrderInfoOrderList'' AND Type = N''P'')
DROP PROCEDURE procInsertOrderInfoOrderList
GO
CREATE PROCEDURE procInsertOrderInfoOrderList
(
@Did NVARCHAR(1000), --餐桌號(團體時為字符串)
@Mid NVARCHAR(4000), --非套餐時為:菜單號或拼音(字符串),套餐時為:套餐號
@Onum NVARCHAR(4000), --非套餐時為:各個菜的數量(字符串),套餐時為:套餐的數量1
@Onume INT, --餐桌實做人數
@Uid INT, --終端下單服務員員工編號
@OremarkList NVARCHAR(4000), --菜的備注(字符串)
@Oflag BIT, --是否套餐標志{(0,非套餐),(1,套餐)}
@Nstatus BIT --用於判斷是團體還是個人{(0,個人),(1,團體)}
)
AS
BEGIN
DECLARE @dt NVARCHAR(1000) --用於存放拆分後的餐桌號
DECLARE @rt NVARCHAR(4000) --用於存放拆分後的菜單號
DECLARE @rt1 NVARCHAR(4000) --存放拆分後的菜的備注
DECLARE @rt2 NVARCHAR(4000) --用於存放拆分後的數量
DECLARE @Orid NVARCHAR(20) --要插入數據庫中的訂單號
DECLARE @Did1 INT --要插入數據庫中的餐桌號
DECLARE @OIid INT --要插入數據庫中的訂單號對應的記錄號
DECLARE @Mid1 INT --要插入數據庫中的菜單號
DECLARE @BLid INT --要插入數據庫中的套餐號
DECLARE @MPrice1 MONEY --要插入數據庫中的價格
DECLARE @Mname1 NVARCHAR(20) --存儲菜單對應的拼音
DECLARE @Oremark NVARCHAR(200) --要插入數據庫中的菜的備注
DECLARE @count INT --用於統計餐桌的個數
DECLARE @count1 INT --統計菜單的個數
DECLARE @count2 INT --統計一個餐桌上相同菜的個數
DECLARE @mm INT --用於循環餐桌的個數
DECLARE @nn INT --用於循環插入菜單的個數
DECLARE @i INT --用於處理拆分調用SUBSTRING的個數
DECLARE @ii INT --用於處理拆分調用SUBSTRING的個數
DECLARE @timeID NVARCHAR(17) --獲取時間唯一標示
DECLARE @OrderInfoDid INT --用於團體開單時取同一個訂單號
DECLARE @FirstYN INT --判斷是開單還是加菜{(0,開單),(大於0,加菜)}
DECLARE @DidYN INT --存儲接收處理後的餐桌號,