gpt4 book ai didi

sql-server - 使用声明和设置变量创建存储过程

转载 作者:行者123 更新时间:2023-12-02 07:00:47 26 4
gpt4 key购买 nike

我正在创建一个存储过程,其中只有值必须传递,并且我必须从多个表中检索多个值。我尝试这样做,但它显示错误,如

Incorrect Syntax near Begin

Must declare the scalar variable @OrderID

Declare @OrderItemID AS INT
DECLARE @AppointmentID AS INT
DECLARE @PurchaseOrderID AS INT
DECLARE @PurchaseOrderItemID AS INT
DECLARE @SalesOrderID AS INT
DECLARE @SalesOrderItemID AS INT

SET @OrderItemID = (SELECT OrderItemID FROM [OrderItem] WHERE OrderID = @OrderID)

SET @AppointmentID = (SELECT AppoinmentID FROM [Appointment] WHERE OrderID = @OrderID)

SET @PurchaseOrderID = (SELECT PurchaseOrderID FROM [PurchaseOrder] WHERE OrderID = @OrderID)

最佳答案

您应该尝试此语法 - 假设您希望将 @OrderID 作为存储过程的参数:

CREATE PROCEDURE dbo.YourStoredProcNameHere
@OrderID INT
AS
BEGIN
DECLARE @OrderItemID AS INT
DECLARE @AppointmentID AS INT
DECLARE @PurchaseOrderID AS INT
DECLARE @PurchaseOrderItemID AS INT
DECLARE @SalesOrderID AS INT
DECLARE @SalesOrderItemID AS INT

SELECT @OrderItemID = OrderItemID
FROM [OrderItem]
WHERE OrderID = @OrderID

SELECT @AppointmentID = AppoinmentID
FROM [Appointment]
WHERE OrderID = @OrderID

SELECT @PurchaseOrderID = PurchaseOrderID
FROM [PurchaseOrder]
WHERE OrderID = @OrderID

END

当然,只有当您只返回一个值(而不是多个值!)时才有效

关于sql-server - 使用声明和设置变量创建存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9240297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com