کتاب آموزش کاربردی و پروژه محور نرم افزار SQL SERVER بهترین انتخاب برای کسانی است که با داده و اطلاعات سر و کار دارند. دوست دارند بتوانند گزارشات و کوئری های مختلف مورد نیاز خود را خوشان تهیه کنند.
دانشجویان رشته های مهندسی کامپیوتر و IT، رشته های مدیریت، متخصصان هوش تجاری (BI ) می توانند با مطالعه و تمرین این کتاب به نرم افزار مدیریت پایگاه داده sql server مسلط شوند. برای سفارش این کتاب بر روی تصویر زیر کلیک کنید
پاسخنامه تمرینهای فصل هفتم کتاب آموزش کاربردی و پروژه محور نرم افزار SQL Server
پاسخ سوال 1:
CREATE VIEW ProductDetailsView AS
SELECT ProductsTbl.PName, CategoriesTbl.CategoryName, BrandsTbl.BrandName
FROM ProductsTbl
JOIN CategoriesTbl ON ProductsTbl.CategoryID = CategoriesTbl.CategoryID
JOIN BrandsTbl ON ProductsTbl.BrandID = BrandsTbl.BrandID;
پاسخ سوال 2:
CREATE PROCEDURE GetCustomersByLastName
@Family NVARCHAR(150)
AS
BEGIN
SELECT * FROM CustomersTbl WHERE CFamily = @Family;
END;
پاسخ سوال 3:
CREATE PROCEDURE DecreaseProductStock
@ProductID INT,
@Number INT
AS
BEGIN
UPDATE ProductsTbl
SET PStock = PStock – @Number
WHERE ProductID = @ProductID;
END;
پاسخ سوال 4:
CREATE PROCEDURE UpdateProductStock
@ProductID INT,
@NewStock INT
AS
BEGIN
UPDATE ProductsTbl
SET PStock = @NewStock
WHERE ProductID = @ProductID;
END;
پاسخ سوال 5:
CREATE PROCEDURE AddNewProduct
@Pcode char(13),
@PName NVARCHAR(255),
@BrandID INT,
@CategoryID INT,
@Price bigint,
@Stock INT,
@Average float
AS
BEGIN
INSERT INTO ProductsTbl (Pcode, PName, CategoryID,BrandID, PPrice, PStock, PAverage)
VALUES (@Pcode, @PName, @CategoryID,@BrandID, @Price, @Stock, @Average);
END;
پاسخ سوال 6:
CREATE PROCEDURE GetProductsByPrice
@MaxPrice DECIMAL(10, 2)
AS
BEGIN
SELECT * FROM ProductsTbl WHERE PPrice < @MaxPrice;
END;
پاسخ سوال 7:
DECLARE @ProductID INT, @PName NVARCHAR(150), @Price bigint
DECLARE ProductCursor CURSOR FOR
SELECT ProductID, PName, PPrice
FROM ProductsTbl
WHERE CategoryID = 5 AND PPrice < 50000;
OPEN ProductCursor;
FETCH NEXT FROM ProductCursor INTO @ProductID, @ProductName, @Price;
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO NewProductsTbl (ProductID, ProductName, Price)
VALUES (@ProductID, @PName, @Price);
FETCH NEXT FROM ProductCursor INTO @ProductID, @ProductName, @Price;
END;
CLOSE ProductCursor;
DEALLOCATE ProductCursor;
پاسخ سوال 8:
CREATE TRIGGER trg_StockZero
ON ProductsTbl
AFTER UPDATE
AS
BEGIN
IF EXISTS (SELECT * FROM inserted WHERE PStock = 0)
BEGIN
INSERT INTO SystemLogTbl (CreateDateTime , [Description])
VALUES ( GETDATE(), N’موجودی محصول صفر شد’);
END;
END;
پاسخ سوال 9:
CREATE PROCEDURE AddProductWithTransaction
@Pcode char(13),
@PName NVARCHAR(255),
@BrandID INT,
@CategoryID INT,
@Price DECIMAL(10, 2),
@Stock INT,
@Average float
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION;
INSERT INTO ProductsTbl (PCode, PName,BrandID, CategoryID, PStock, PPrice, PAverage)
VALUES (@Pcode,@PName, @BrandID,@CategoryID, @Stock, @Price, @Average);
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
PRINT N’خطایی اتفاق افتاده است’;
END CATCH
END;
پاسخ سوال 10:
صفحه 271 کتاب



