Я на последней части этого задания, любая помощь будет благодарна, спасибо!
exec DeleteRecordWithUserInputCompanyName 'Costco'
Было бы сказано, что команда (ы) выполнена успешно, однако строки не были удалены.
Задача Хранимая процедура, которая позволит удалить клиента с указанием названия компании в качестве входных данных. Не оставляйте никаких «осиротевших» записей!
Мой код
Create Procedure DeleteRecordWithUserInputCompanyName @CompanyName varchar(50)as
--Get All Company names
Declare @@CompanyNames varchar(50)
select @@CompanyNames = Company from Customers
--Get CustomerNumber mathing the company name
Declare @@CustomerNumber char(4)
select @@CustomerNumber = CustomerNo from Customers where Company = @CompanyName
--Get Order Number mathing Customer Number
Declare @@OrderNumber int
select @@OrderNumber = OrderNo from Orders where CustomerNo = @@CustomerNumber
if (@@CompanyNames = @CompanyName)
Begin
ALTER TABLE Customers NOCHECK CONSTRAINT ALL
Delete from Customers where Company = @CompanyName
ALTER TABLE Customers CHECK CONSTRAINT ALL
Delete from Orders where CustomerNo = @@CustomerNumber
ALTER TABLE SalesDetail NOCHECK CONSTRAINT ALL
Delete from SalesDetail where OrderNo = @@OrderNumber
ALTER TABLE SalesDetail CHECK CONSTRAINT ALL
End
Таблицы
Create Table Customers
(
CustomerNo char(4)
Constraint ck_CustomerNoHas4positionsWithNumbers
Check(CustomerNo like'[0-9],[0-9],[0-9],[0-9]'),
Company varchar(50) not null,
CustomerRep char(3),
CreditLimt money default(20000.00),
PRIMARY KEY(CustomerNo)
)
Create Table Orders
(
OrderNo int,
OrderDate Date not null,
CustomerNo char(4) not null,
SalesRep char(3) not null
PRIMARY KEY(OrderNo)
)
Create Table SalesDetail
(
SaleDetailID int,
ManufactureID char(3) Constraint ck_ManufactureIDFromSaleDetails check(ManufactureID like'[a-z],[a-z],[a-z]') not null,
ProductID char(5) Constraint ck_ProductIDSalesDetail check(ProductID like'[0-9],[0-9],[a-z],[a-z],[a-z]') not null,
OrderNo int,
qtyOrdered int
PRIMARY KEY(SaleDetailID)
)