首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储过程

存储过程
EN

Stack Overflow用户
提问于 2016-12-09 22:50:40
回答 1查看 37关注 0票数 0

我正在尝试创建一个stored procedure,它将向

代码语言:javascript
复制
Order TABLE

OrderId INT
,CustomerId INT
,StoreId INT
,OrderType VARCHAR(50)
,OrderDate DATE)

它给出了以下错误

(Msg 102,15级,State 1,第108行,靠近“@StoreNumber”)第108行是@StoreNumber = '1‘。

请帮帮我!这是我到目前为止所拥有的

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2016-12-10 15:27:13

你的SP不太像你的意图,也缺少参数。看起来应该是:

代码语言:javascript
复制
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

一个订单几乎没有包含一个单一的订单项目。您应该重新考虑这一点,并检查基本的Server示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41070080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档