From 8983ba8f8777cc6c0c0f3b6f5fbc774ac765b007 Mon Sep 17 00:00:00 2001 From: zhvirblis Date: Mon, 18 Sep 2017 15:52:24 +0300 Subject: [PATCH 1/2] Task33(d) --- 1-select-tasks/33.txt | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 1-select-tasks/33.txt diff --git a/1-select-tasks/33.txt b/1-select-tasks/33.txt new file mode 100644 index 0000000..d607566 --- /dev/null +++ b/1-select-tasks/33.txt @@ -0,0 +1,73 @@ +CREATE + TYPE dbo.OrderDetailsList AS TABLE + ( + ProductID INT, + UnitPrice MONEY, + Quantity SMALLINT, + Discount REAL + ); + +CREATE + PROCEDURE dbo.UpdateOrder + @OrderDetailsList AS dbo.OrderDetailsList READONLY, + @OrderID INT, + @CustomerID NCHAR(5), + @EmployeeID INT, + @OrderDate DATETIME, + @RequiredDate DATETIME, + @ShippedDate DATETIME, + @ShipVia INT, + @Freight MONEY, + @ShipName NVARCHAR(40), + @ShipAddress NVARCHAR(60), + @ShipCity NVARCHAR(15), + @ShipRegion NVARCHAR(15), + @ShipPostalCode NVARCHAR(10), + @ShipCountry NVARCHAR(15) + AS + BEGIN TRY + BEGIN TRANSACTION + UPDATE + dbo.Orders + SET + CustomerID = @CustomerID, + EmployeeID = @EmployeeID, + OrderDate = @OrderDate, + RequiredDate = @RequiredDate, + ShippedDate = @ShippedDate, + ShipVia = @ShipVia, + Freight = @Freight, + ShipName = @ShipName, + ShipAddress = @ShipAddress, + ShipCity = @ShipCity, + ShipRegion = @ShipRegion, + ShipPostalCode = @ShipPostalCode, + ShipCountry = @ShipCountry + WHERE OrderID = @OrderID + INSERT + dbo.[Order Details]( + ProductID, + UnitPrice, + Quantity, + Discount + ) + SELECT @@IDENTITY + ProductID, + UnitPrice, + Quantity, + Discount + FROM @OrderDetailsList; + COMMIT; + END TRY + BEGIN CATCH + ROLLBACK; + END CATCH + +-- Run + +DECLARE @OrderDetailsL AS dbo.OrderDetailsList +INSERT @OrderDetailsL (ProductID, UnitPrice, Quantity, Discount) +VALUES (42, 30, 12, 0.15) +DECLARE @dt DATETIME +SET @dt=GETDATE() +EXEC dbo.UpdateOrder @OrderDetailsL, 102554, 'SIODE', 2, @dt, @dt, @dt, 5, 46, 'Fologr', 'Wolski Zajazd', 'ul. Filtrowa 68', 'Warszawa', NULL, '01-012', 'Poland'; From 79f8be51dfea1d1fd5a016c41009e15636826b04 Mon Sep 17 00:00:00 2001 From: zhvirblis Date: Tue, 26 Sep 2017 08:10:47 +0300 Subject: [PATCH 2/2] Some fixes --- 1-select-tasks/33.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/1-select-tasks/33.txt b/1-select-tasks/33.txt index d607566..9dc4d55 100644 --- a/1-select-tasks/33.txt +++ b/1-select-tasks/33.txt @@ -1,3 +1,6 @@ +DROP PROCEDURE dbo.UpdateOrder; +DROP TYPE dbo.OrderDetailsList; + CREATE TYPE dbo.OrderDetailsList AS TABLE ( @@ -44,6 +47,10 @@ CREATE ShipPostalCode = @ShipPostalCode, ShipCountry = @ShipCountry WHERE OrderID = @OrderID + + DELETE FROM [Order Details] + WHERE OrderId = @OrderId + INSERT dbo.[Order Details]( ProductID, @@ -51,7 +58,7 @@ CREATE Quantity, Discount ) - SELECT @@IDENTITY + SELECT @OrderId ProductID, UnitPrice, Quantity,