Professional Documents
Culture Documents
Lý Thuyết SQL (đã sửa font)
Lý Thuyết SQL (đã sửa font)
-- User-Defined Function
/* Create a function: CREATE FUNCTION <FUNCTION_NAME> LIST OF INPUT PARAMETERS +
DATA_TYPE
RETURNS DATA_TYPE
AS
BEGIN
SELECT STATEMENT
RETURN .....
END
Call the function: DBO.<FUNCTION_NAME (LIST OF ARGUMENT VALUES)>
*/
-- Trigger
/*
Create a trigger: CREATE TRIGGER <TRIGGER_NAME> ON <TABLE_NAME>
FOR INSERT/DELETE/UPDATE
AS
BEGIN
DECLARE VARIABLES AND USE THEM
END
*/
-- Retrieve a list of products (Product Code, Product Name) from a specific country
CREATE PROCEDURE pro_InDSSP_QG @QG VARCHAR(40)
AS
BEGIN
SELECT S.MASP, S.TENSP
FROM SANPHAM S
WHERE S.NUOCSX = @QG
END
EXEC pro_InDSSP_QG 'Trung Quoc'
-- Trigger
-- Constraint: Purchase date must be >= Membership registration date
-- Using temporary tables
-- Two temporary tables: Inserted, Deleted
CREATE TRIGGER trig_ins_HD ON HOADON
FOR INSERT
AS
BEGIN
-- Declare variables to store MAKH and NGAYMUAHANG from the INSERTED table
DECLARE @MAKH CHAR(4), @NGMH SMALLDATETIME, @NGDK SMALLDATETIME
-- Assign values to the variables
SELECT @MAKH = I.MAKH, @NGMH = I.NGHD
FROM INSERTED I
-- Assign the registration date
SELECT @NGDK = K.NGDK
FROM KHACHHANG K
WHERE K.MAKH = @MAKH
-- Check
IF (@NGMH < @NGDK)
BEGIN
PRINT (N'ERROR: Purchase date is before the registration date')
ROLLBACK TRAN
END
ELSE
BEGIN
PRINT (N'SUCCESSFULLY ADDED')
COMMIT TRAN
END
END
-- Cursor example
/*
DECLARE <CURSOR_NAME> CURSOR
FOR
SELECT SELECT STATEMENT
OPEN <CURSOR_NAME>
FETCH NEXT FROM <CURSOR_NAME>
INTO <LIST OF VARIABLES MATCHING THE DATA ATTRIBUTES OF A DATA ROW THAT THE CURSOR
IS CURRENTLY POINTING TO>
-- Variable @@FETCH_STATUS = 0 means there is data
*/