0 Pluspunkte 0 Minuspunkte

Ich habe diese SQL Abfrage

-- Tabelle neu erstellen

IF OBJECT_ID('orders', 'U') IS NOT NULL

   DROP TABLE orders;



CREATE TABLE orders (

   order_id INT,

   u_id VARCHAR(50),

   order_date DATE,

   order_amount DECIMAL(12,2)

);



-- Beispiel-Daten einfügen

INSERT INTO orders VALUES (1, 'user_id_001', GETDATE(), 500.00);

INSERT INTO orders VALUES (2, 'user_id_003', GETDATE(), 225.00);

INSERT INTO orders VALUES (3, 'user_id_001', GETDATE(), 725.00);

INSERT INTO orders VALUES (4, 'user_id_002', GETDATE(), 150.00);

INSERT INTO orders VALUES (5, 'user_id_002', GETDATE(), 900.00);



-- Prozedur erstellen

CREATE PROCEDURE find_orders_by_user_id

   @user_id VARCHAR(50)

AS

BEGIN

   -- Ergebnisse direkt auswählen, sodass sie zurückgegeben werden

   SELECT order_id, order_date, order_amount

   FROM orders

   WHERE u_id = @user_id;

END;



-- Prozedur aufrufen und Ergebnisse anzeigen
EXEC find_orders_by_user_id 'user_id_001'; 

aber bekomme diese Fehlermeldung

Procedure find_orders_by_user_id, Line 25
'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Mit der GO Anweisung kannst du einen Batch abschließen und so mehrere erstellen.

IF OBJECT_ID('orders', 'U') IS NOT NULL
   DROP TABLE orders;

CREATE TABLE orders (
   order_id INT,
   u_id VARCHAR(50),
   order_date DATE,
   order_amount DECIMAL(12,2)
);

INSERT INTO orders VALUES (1, 'user_id_001', GETDATE(), 500.00);
INSERT INTO orders VALUES (2, 'user_id_003', GETDATE(), 225.00);
INSERT INTO orders VALUES (3, 'user_id_001', GETDATE(), 725.00);
INSERT INTO orders VALUES (4, 'user_id_002', GETDATE(), 150.00);
INSERT INTO orders VALUES (5, 'user_id_002', GETDATE(), 900.00);

GO

CREATE PROCEDURE find_orders_by_user_id
   @user_id VARCHAR(50)
AS
BEGIN
   SELECT order_id, order_date, order_amount
   FROM orders
   WHERE u_id = @user_id;
END;

GO

EXEC find_orders_by_user_id 'user_id_001';
von (766 Punkte)