[英]stored procedure, sql
我正在尝试创建一个stored procedure
,该stored procedure
将一个新订单插入
Order TABLE
OrderId INT
,CustomerId INT
,StoreId INT
,OrderType VARCHAR(50)
,OrderDate DATE)
它给我以下错误
(消息102,级别15,状态1,第108行在'@StoreNumber'附近的语法不正确。)第108行的@StoreNumber ='1'。
请帮忙! 这是我到目前为止的
CREATE PROCEDURE spCreateOrder (
@CustFName varchar(10),
@CustLName varchar(10),
@OrderType Varchar(50),
@OrderDate Date )
AS
Begin
DECLARE @CustomerID INT = (SELECT CustomerID FROM CUSTOMER WHERE CustFName = @CustFName AND CustLName = @CustLName)
DECLARE @StoreID INT = (SELECT StoreID FROM Store WHERE StoreID = @StoreID)
INSERT INTO tblORDER (CustomerID, StoreID, OrderType, OrderDate)
VALUES (@CustomerID, @StoreID, @OrderType, @OrderDate)
DECLARE @OrderID INT = (SELECT @@IDENTITY)
INSERT INTO tblLINE_ITEM (LineItemID, OrderID, Quantity)
VALUES (@LineItemID, @OrderID, @Quantity)
End
您的SP确实不像您的意图,并且也缺少参数。 它看起来像:
CREATE PROCEDURE spCreateOrder (
@CustFName varchar(10),
@CustLName varchar(10),
@OrderType Varchar(50),
@OrderDate Date,
@StoreID INT )
AS
Begin
DECLARE @MyTable table (OrderID int NOT NULL);
INSERT INTO tblORDER (CustomerID, StoreID, OrderType, OrderDate)
output inserted.OrderId into @MyTable
SELECT CustomerID, @StoreID, @OrderType, @OrderDate
FROM CUSTOMER WHERE CustFName = @CustFName AND CustLName = @CustLName;
-- insert into tblLINE_ITEM (LineItemID, OrderID, Quantity)
-- select ?, OrderId, ? from @MyTable;
End
订单几乎不会包含单个订单商品。 您应该重新考虑这一点,并检查基本的SQL Server示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.