Để báo cáo số lượng bán được theo từng năm của 1 đầu sách (title) nào đó, người ta đã tạo 1 thủ tục với nội dung như sau:
CREATE PROCEDURE get_sales_for_title
@title varchar(80),
@ytd_sales int OUTPUT
AS
SELECT @ytd_sales = ytd_sales FROM titles WHERE title = @title
IF @@ROWCOUNT = 0
RETURN(-1)
ELSE
RETURN(0)
Biến hệ thống @@ROWCOUNT luôn trả về số bản ghi của lệnh SQL vừa được thực hiện trước đó. Bạn cần tạo 1 script để gọi thủ tục trên. Nếu thủ tục chạy thành công, nó sẽ báo cáo số luợng bán được, ngược lại thì hiển thị thông báo "No Sales Found". Script này được tạo như thế nào?
A -
DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title Net Etiquette, @ytd IF @retval < 0 PRINT No sales found ELSE PRINT Year to date sales: + STR (@ytd) GO
B -
DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title Net Etiquette, @ytd OUTPUT IF @retval < 0 PRINT No sales found ELSE PRINT Year to date sales: + STR (@ytd) GO
C -
DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title Net Etiquette,@retval OUTPUT IF @retval < 0 PRINT No sales found ELSE PRINT Year to date sales: + STR (@ytd) GO
D -
DECLARE @retval int DECLARE @ytd int EXEC @retval = get_sales_for_title Net Etiquette, @ytd OUTPUT IF @retval < 0 PRINT No sales found ELSE PRINT Year to date sales: + STR (@ytd) GO
2-
Paul thực hiện lệnh SQL sau:
SELECT Customers.name, Customers.ord_id, Orders.ord_date
FROM Customers INNER JOIN Orders
WHERE Customers.cust_id = Orders.cust_id
Cả hai bảng đều có 10000 hàng. Truy vấn này mất nhiều thời gian để thực hiện, Để cải thiện việc thực thi truy vấn ta nên dùng đối tượng nào sau đây:
A -
Triggers
B -
Stored procedures
C -
Views
D -
Batches
3-
Khảo sát thủ tục sau:
Create procedure prcTemp
@tmp int output
As
Select @tmp=ytd_sales from titles
Return
Hãy xác định lệnh SQL được dùng để hiển thị giá trị của biến đầu ra khi thủ tục này được gọi :
A -
Declare @temp int Exec prcTemp @tmp=@temp output Print @temp
B -
Exec prcTemp @tmp output Print @tmp
C -
Declare @tmp int Exec prcTemp @tmp Print @tmp
D -
Declare @temp int Exec prcTemp @tmp=@temp Print @temp
4-
Bạn đang xây dựng CSDL phục vụ cho việc bán lẻ sách qua mạng của 1 công ty. Khách hàng có thể sử dụng web site để đặt mua sách. Các đơn đặt hàng sẽ được đưa vào CSDL BookOrders. Thông tin đặt hàng này sẽ được chuyển vào CSDL Reports vào cuối mỗi ngày. CSDL Reports chứa các bảng Order và LineItem.
Khách hàng có thể sử dụng web site của công ty để xem các đơn đặt hàng trong CSDL Reports. Khách hàng chỉ nên thấy đơn đặt hàng của riêng họ mà thôi và không được quyền chỉnh sửa hoá đơn cũ. Họ cùng không đuợc nhìn thấy giá trị của khoá chính của đơn đặt hàng. Bạn nên làm gì?
A -
Tạo 1 view hiển thị thông tin đặt hàng cho mỗi khách hàng
B -
Tạo 1 thủ tục người dùng để hiển thị thông tin đơn đặt hàng cho 1 khách hàng được cho
C -
Tạo 1 hàm người dùng loại scalar để trả về thông tin đơn đặt hàng cho 1 khách hàng được cho
D -
Gán quyền SELECT trên bảng Order và LineItem cho tất cả các khách hàng
5-
Lệnh nào dưới đây được dùng để xóa 1 login ID ra khỏi SQL Server
A -
sp_droplogin
B -
drop login
C -
sp_removelogin
D -
Chỉ có thể xóa các login bằng Enterprise Manager
6-
Các trigger sau được tạo ra trên bảng Publishers:
CREATE TRIGGER trgDeletePublisher1 ON Publishers
AFTER DELETE
AS
print 'Deletion successful'
CREATE TRIGGER trgDeletedPublisher2 ON Publishers
AFTER DELETE
AS
print 'Details of the publisher deleted:'
Select * From deleted
CREATE TRIGGER trgDeletePublisher3 ON Publishers
AFTER
DELETE
AS
print 'One publisher deleted'
Cái gì sẽ được in ra khi lệnh DELETE sau được thực thi?
DELETE Publishers
Where pub_name = 'GGG&G'
A -
Deletion successful Details of the publisher deleted: pub_id pub_name city state country ---------------------------------------------------------- 9901 GGG&G München NULL Germany (1 row(s) affected) One publisher deleted
B -
Details of the publisher deleted: pub_id pub_name city state country ------ ---------------------------------------------------- 9901 GGG&G München NULL Germany (1 row(s) affected) One publisher deleted
C -
Details of the publisher deleted: pub_id pub_name city state country ------ ---------------------------------------------------- 9901 GGG&G München NULL Germany (1 row(s) affected) Deletion successful
D -
Báo lỗi vì không thể có 3 trigger cho cùng 1 lệnh DELETE trên bảng Publishers
7-
Phát biểu nào sau đây là đúng khi nói về triggerng
A -
Trigger cần được thực thi 1 cách tường minh
B -
Trigger có thể giám sát được các thay đổi dữ liệu không được phép
C -
Trigger được thực hiện tự động mỗi khi lệnh TRUNCATE TABLE được dùng
D -
Trigger có thể trả về dữ liệu cho người dùng
8-
Từ 2 bảng Person và Employee, người ta đã tạo 1 view như sau:
CREATE VIEW Employee
AS
SELECT P.SSN, P.LastName, P.FirstName, P.Address, P.City, P.State, P.Birthdate, E.EmployeeID, E.Department, E.Salary
FROM Person AS P JOIN Employees AS E ON (P.SSN = E.SSN)
View này được dùng cho 1 ứng dụng để chèn các bản ghi vào hai bảng gốc Person và Employee. Cấu trúc của 2 bảng như sau:
CREATE TABLE Person
( SSN char(11) NOT NULL PRIMARY KEY,
LastName varchar (50) NOT NULL,
FirstName varchar (50) NOT NULL,
Address varchar (100) NOT NULL,
City varchar (50) NOT NULL,
State char (2) NOT NULL,
Birthdate datetime NOT NULL )
GO
CREATE TABLE Employees
( EmployeeID int NOT NULL PRIMARY KEY,
SSN char (11) UNIQUE NOT NULL,
Department varchar (10) NOT NULL,
Salary money NOT NULL,
CONSTRAINT FKEmpPER FOREIGN KEY (SSN)REFERENCES Person (SSN) )
Để ứng dụng có thể dùng lệnh INSERT với view ở trên , bạn nên làm gì?
A -
Tạo 1 trigger AFTER trên view
B -
Tạo 1 trigger INSTEAD OF trên view
C -
Tạo 1 trigger INSTEAD OF trên bảng Person và Employee
D -
Dùng lệnh ALTER VIEW để đưa thêm tuỳ chọn WITH CHECK vào
9-
Bảng Student được tạo ra bởi lệnh sau:
CREATE TABLE Student
( OwnerID int IDENTITY (1, 1) NOT NULL, FirstName char(20) NULL, LastName char(30) NULL, BirthDate date NULL, CONSTRAINT PK_Owners PRIMARY KEY (Owner ID) )
Khi thông tin về 1 sinh viên (student) nào đó được tạo ra, ngày sinh của sinh viên đó nếu không được nhập vào thì database cần tạo 1 thông báo lỗi. Bạn cần chọn cách thực hiện nào để kiểm tra tính hợp lệ của trường ngày sinh và tạo thông báo lỗi khi không hợp lệ
A -
Thêm ràng buộc CHECK vào trường BirthDate (ngày sinh)
B -
Tạo 1 rule rồi gán nó cho trường BirthDate
C -
Thay đổi cấu trúc bảng sao cho trường BirthDate không được phép giái trị null
D -
Tạo trigger trên bảng Student để xét tính hợp lệ của trường birthDate
10-
Phát biểu nào sau đây là đúng khi định nghĩa về trigger
A -
Trigger giống như procedure, có thể được gọi 1 cách tường minh để thực hiện
B -
Trigger có thể giúp tránh được những thay đổi về dữ liệu không được phép, hoặc sai
C -
Trigger có thể trả về dữ liệu cho người dùng
D -
Trigger không thể gọi 1 trigger khác bởi vì trigger không thể gọi tường minh được