کتاب آموزش کاربردی و پروژه محور نرم افزار SQL SERVER بهترین انتخاب برای کسانی است که با داده و اطلاعات سر و کار دارند. دوست دارند بتوانند گزارشات و کوئری های مختلف مورد نیاز خود را خوشان تهیه کنند.
دانشجویان رشته های مهندسی کامپیوتر و IT، رشته های مدیریت، متخصصان هوش تجاری (BI ) می توانند با مطالعه و تمرین این کتاب به نرم افزار مدیریت پایگاه داده sql server مسلط شوند. برای سفارش این کتاب بر روی تصویر زیر کلیک کنید
Contents
پاسخنامه تمرینهای فصل هفتم کتاب آموزش کاربردی و پروژه محور نرم افزار 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 کتاب