--BT1 p204
--Xoa procedure neu no co ton tai truoc
use pubs
go
drop Get_Sales_Avg
go
--Cach 1
create procedure Get_Sales_Avg @a_id id
as
select avg(ytd_sales) as 'Gia tri TB' from titles
where title_id in (select title_id from titleauthor where au_id=@a_id)
go
--Cach 2
create procedure Get_Sales_Avg_1 @a_id varchar (20)
as
select avg(ytd_sales) as 'Gia tri TB' from titles t inner join titleauthor ta
on t.title_id=ta.title_id where au_id=@a_id
go
----------
create procedure Get_Sales_Avg_1 @a_id varchar (20)
as
select avg(ytd_sales) as 'Gia tri TB' from titles t,titleauthor ta
where t.title_id=ta.title_id and au_id=@a_id
go
exec Get_Sales_Avg_1 '267-41-2394'
--BT2: p204
exec Get_Sales_Avg '267-41-2394' with recompile
--BT3: p204
sp_stored_procedures
--BT4: p204
sp_helptext Get_Sales_Avg
--Bai tap ve nha
--Bai 1
create procedure Get_sales_Avg @a_id varchar(11) as
if (select count(*) from authors where au_id=@a_id)=0
begin
raiserror('AuthorID khong nhin thay',1,2)
end
else
select avg(ytd_sales) as 'Gia tri TB' from titles t,titleauthor ta
where t.title_id=ta.title_id and au_id=@a_id
exec Get_sales_Avg '213-46-8916'
--Cau 2:
alter procedure Get_sales_Avg @a_id varchar(11) as
if (select count(*) from authors where au_id=@a_id)!=0
begin
declare @x int
select @x=avg(ytd_sales) from titles t,titleauthor ta
where t.title_id=ta.title_id and au_id=@a_id
if @x > 5000
print 'High year-to-date sales'
else
print 'Low year-to-date sales'
end
exec Get_sales_Avg '267-41-2394'
e mërkurë, 20 qershor 2007
e premte, 15 qershor 2007
Question for User & Security
1. Tạo ra một người dùng win_1, sao đó cấp quyền login cho người dùng này vào SQL Server bằng câu lệnh.
2. Cấp quyền cho người dùng sql_1 có quyền db_owner trên database pubs
2. Cấp quyền cho người dùng sql_1 có quyền db_owner trên database pubs
Emërtimet:
SQL,
SQL_P2,
SQL_P2_User and Security
Question for Index
CSDL Pubs
- Tạo ra một index nonclustered duy nhất trên bảng EmployeeTerritories tại 2 cột EmployeeID và TerritoryID có phần trăm khoảng trống ở nút giữa và nút lá là 50%.
- Tạo 1 clustered index trên bảng Region tại cột RegionID.
- Tạo một chỉ mục clustered có giá trị duy nhất trên bảng Territories trên các cột (TerritoryID, RegionID), đảm bảo giá trị điền đầy ở mức lá là để trống 20%
Question for View & Cursor
CSDL Pubs
- Tạo một view có tên là Store_Discount từ bảng Discount và Stores. View này bao gồm các trường storeID, storeName và discounttype (kiểu giảm giá đang được đưa ra)
- Tạo view dùng để hiển thị tất cả các quyển sách trong bảng titles cùng với một cột gọi là Total, cột này liệt kê giá (price) nhân với số tiền bán được year-to-date.
- Tạo view dùng để hiển thị tất cả các tác giả có họ (last name) bắt đầu bằng ký tự M.
Emërtimet:
SQL,
SQL_P2,
SQL_P2_Session 12_ View and Cursor
Question for Trigger
CSDL Pubs
- Tạo một trigger in ra một câu thông báo lỗi sau:
Raiserror (“%d rows have been modified”,0,1,@@rowcount)
Cho các thao tác thêm, sửa, xóa trên bảng authors - Tạo 1 trigger cập nhật giá của các quyển sách với điều kiện là quyển sách của tác giả Anne thì cho cập nhật, ngược lại thì không cho cập nhật.
- Tạo một bảng mới có cùng cấu trúc và cùng dữ liệu với bảng titles. Tạo một trigger để xóa toàn bộ bảng nếu số hàng trong bảng vừa tạo là lớn hơn 20 ngược lại thì in ra câu thông báo …
- Viết một trigger khi thêm quyển sách có mã là BU0032 và mã tác giả là 172-32-1981 vào bảng titleauthor (lưu ý là phải thêm vào các bảng còn lại)
- Nhập vào một nhà vận chuyển. Nếu nhà vận chuyển có chứa giá trị Rose thì không cho nhập. In ra thông báo lỗi.
- Viết một câu lệnh tạo trigger nếu xóa mã sp là 13 và mã sản phẩm là 10248 là không chấm nhận.
- Viết 1 câu lệnh trigger trên bảng Employee sao cho nếu xóa 1 mẫu tin nào đó trên bảng Employee nó sẽ tự động đưa vào bảng RetiresEmployee.
Emërtimet:
SQL,
SQL_P2,
SQL_P2_Session 16_Trigger
Question for Store Procedure
CSDL Northwind
1. Tạo một procedure hiển thị các nhà cung cấp của sản phẩm thuộc loại 1.
2. Tạo một procedure hiển thị những nhân viên có ngày bắt đầu vào làm nằm trong khoảng thời gian được nhập vào. Viết câu lệnh thực thi procedure trên nhập vào từ ngày 16/12/1991 đến ngày 17/10/1992
1. Tạo một procedure hiển thị các nhà cung cấp của sản phẩm thuộc loại 1.
2. Tạo một procedure hiển thị những nhân viên có ngày bắt đầu vào làm nằm trong khoảng thời gian được nhập vào. Viết câu lệnh thực thi procedure trên nhập vào từ ngày 16/12/1991 đến ngày 17/10/1992
Emërtimet:
SQL,
SQL_P2,
SQL_P2_Session 12_Store Procedure
e enjte, 14 qershor 2007
Answer_Question_SQL_P2
1. N-M
2. Dạng chuẩn 2 (Second Normal Form)
3. SQL server sẽ trả về lỗi
4. Nested subqueries
Correlated subqueries
5. True
6. Chuyển thành kiểu dữ liệu bit, các giá trị khác 0 sẽ chuyển thành 1
Kiểu dữ liệu Char hoặc Varchar có thể chuyển thành kiểu Int chỉ khi nó chứa ký số
7. varbinary
8. True
9. False
10. 1024
11. With schemabinding
12. User-defined stored procedures
System stored procedures
13. 2100
14. EXEC procedure_name
EXECUTE procedure_name
15. Một trigger chỉ áp dụng cho một bảng
Một trigger có thể kết hợp cả 3 thao tác trên bảng: : INSERT, UPDATE, and DELETE
16. Update table
17. CREATE TRIGGER ins_trigg ON Passenger
FOR INSERT
AS
if (select pnr_no from inserted)> 500
begin
print 'PNR_no do not exeed 500'
rollback tran
end
18. Autocommit mode
19. Isolation
20. True
2. Dạng chuẩn 2 (Second Normal Form)
3. SQL server sẽ trả về lỗi
4. Nested subqueries
Correlated subqueries
5. True
6. Chuyển thành kiểu dữ liệu bit, các giá trị khác 0 sẽ chuyển thành 1
Kiểu dữ liệu Char hoặc Varchar có thể chuyển thành kiểu Int chỉ khi nó chứa ký số
7. varbinary
8. True
9. False
10. 1024
11. With schemabinding
12. User-defined stored procedures
System stored procedures
13. 2100
14. EXEC procedure_name
EXECUTE procedure_name
15. Một trigger chỉ áp dụng cho một bảng
Một trigger có thể kết hợp cả 3 thao tác trên bảng: : INSERT, UPDATE, and DELETE
16. Update table
17. CREATE TRIGGER ins_trigg ON Passenger
FOR INSERT
AS
if (select pnr_no from inserted)> 500
begin
print 'PNR_no do not exeed 500'
rollback tran
end
18. Autocommit mode
19. Isolation
20. True
Question 19
19. Một giao dịch chỉnh sửa chỉ được truy cập dữ liệu trước hoặc sau khi một giao dịch khác hoàn thành. Thuộc tính nào sau đây của giao dịch định nghĩa cho trường hợp này
a. Atomicity
b. Consistency
c. Isolation
d. Durability
a. Atomicity
b. Consistency
c. Isolation
d. Durability
Question 18
18. Chế độ giao dịch mặc định của SQL Server là?
a. Explicit mode
b. Implicit mode
c. Autocommit mode
a. Explicit mode
b. Implicit mode
c. Autocommit mode
Abonohu te:
Postimet (Atom)