200分,存储过程

来源:百度知道 编辑:UC知道 时间:2024/05/28 00:04:10
逐句解释,不想学浪费高手的时间,请尽可能的通俗。易懂
ALTER PROCEDURE InsertOrderItemList
@OrderId INT,
@ItemIdList NVARCHAR(4000) = NULL,
@QuantityList NVARCHAR(4000) = NULL,
@PriceList NVARCHAR(4000) = NULL
AS
BEGIN

SET NOCOUNT ON;
DECLARE @Length INT
DECLARE @FirstItemIdWord NVARCHAR(4000)
DECLARE @FirstQuantityWord NVARCHAR(4000)
DECLARE @FirstPriceWord NVARCHAR(4000)
DECLARE @ItemId INT
DECLARE @Quantity INT
DECLARE @Price MONEY

SELECT @Length = DATALENGTH(@ItemIdList)
WHILE @Length > 0

BEGIN
EXEC @Length = PopFirstWord @ItemIdList OUTPUT ,@FirstItemIdWord OUTPUT
EXEC PopFirstWord @QuantityList OUTPUT, @FirstQuantityWord OUTPUT
EXEC PopFirstWord @PriceList OUTPUT,@FirstPriceWord OUTPUT

IF @Length>0
BEGIN
SELECT @ItemId =Convert (int,@FirstIte

改了改,看看
ALTER PROCEDURE InsertOrderItemList
--更改存储过程InsertOrderItemList
@OrderId INT,
--定义整数型参数 @OrderId
@ItemIdList NVARCHAR(4000) = NULL,
--定义参数@ItemIdList ,参数默认为null
@QuantityList NVARCHAR(4000) = NULL,
--定义参数@QuantityList,参数默认为null
@PriceList NVARCHAR(4000) = NULL
--定义参数@PriceList ,参数默认为null
AS
BEGIN
--开始1,必须要有一个End对应

SET NOCOUNT ON;
--不返回影响记录数
DECLARE @Length INT
--定义变量 @Length 为整数型
DECLARE @FirstItemIdWord NVARCHAR(4000)
DECLARE @FirstQuantityWord NVARCHAR(4000)
DECLARE @FirstPriceWord NVARCHAR(4000)
DECLARE @ItemId INT
DECLARE @Quantity INT
DECLARE @Price MONEY

SELECT @Length = DATALENGTH(@ItemIdList)
--赋值@Length等于@ItemIdList变量的字节数
WHILE @Length > 0 --当@Length>0时循环

BEGIN
--开始2,必须要有一个End对应
EXEC @Length = PopFirstWord @ItemIdList OUTPUT ,@FirstItemIdWord OUTPUT
--执行参数过程,得出参数值@ItemId