Giá Trị Mặc định (Default Values) - Bài Giảng SQL SERVER Tin Chi)
Có thể bạn quan tâm
Trong số các đặc tính của cột, chúng ta xét thấy giá trị có thể null và giá trị mặc định. Cả hai đặc tính này định ra giá trị chèn vào một cột khi nó không được chỉ định trong câu lệnh INSERT. Các trường hợp này có thể xảy ra khi giá trị cột không được đưa vào trong câu lệnh INSERT:
- Khi cột được định nghĩa như l à chấp nhận giá trị NULL và không có giá trị mặc định, giá trị của cột là NULL.
- Khi cột được định nghĩa không chấp nhận giá trị NULL và không có giá trị mặc định, một lỗi sẽ xảy ra.
- Khi cột có một giá trị mặc định
Như vậy, mỗi một cột trong một mẫu tin của bảng đều phải chứa một giá trị, ngay cả khi giá trị đó là NULL. Có những trường hợp bạn cần phải tải một hàng dữ liệu vào một bảng nhưng bạn không biết giá trị dành cho cột hay giá trị này không tồn tại. Nếu cột chấp nhận các giá trị Null, bạn có thể tải hàng có giá trị Null. Thông thường, các cột chấp nhận giá trị Null có thể không phải là các cột cần thiết nên giải pháp tốt h ơn hết là ấn định một giá trị mặc nhiên (không nhập giá trị vào thì cột sẽ chấp nhận giá trị mặc định). Việc đó chính là định nghĩa DEFAULT cho cột ở những nơi thích hợp. Chẳng hạn, người ta thường chỉ định 0 là giá trị mặc định cho các cột số, hoặc N/A là giá trị mặc định cho các cột chuỗi khi không có giá trị nào được chỉ định).
Khi bạn nhập vào một mẫu tin của bảng có một định nghĩa Default dành cho một cột bạn đang gián tiếp hướng dẫn SQL Server nhập một giá trị mặc định trong cột khi bạn không chỉ định một giá trị cho cột đó.
SQL Server 2000 có hai cách để triển khai các giá trị mặc định cho các cột: Default Constraint và Default Object.
3.2.2.1 Default Constraint
Default constraint có thể được tạo tại thời điểm tạo bảng, thêm sau khi bảng được tạo. Giá trị Default được dùng để gán giá trị hằng số cho một cột.
Chỉ có một giá trị Default có thể được tạo cho một cột.
Các cột TIMESTAMP, IDENTITY và ROWGUIDCOL không thể có default constraint, vì giá trị của chính đã tự động xác định.
Giá trị default có thể là một hằng số; một hàm hệ thống, chẳng hạn Getdate(); một biến toàn cục, như @@trancount; hoặc một hàm do người dùng định nghĩa.
Khai báo default constraint
Định nghĩa Default constraing trong khi tạo bảng
CREATE TABLEtablename(
[,...])
Định nghĩa Default constraint đối với một bảng đã tồn tại.
ALTER TABLEtablename
ADD [ CONSTRAINTconstraintname] DEFAULTexpressionFORcolumnname
Ví dụ 1: Tạo bảng Events với các default constraint CREATE TABLE Events
( EventID int IDENTITY (1, 1) NOT NULL , EventType nvarchar (10) NOT NULL,
EventTitle nvarchar (100) NULL , EventDescription ntext NULL , EventLanguage nvarchar (2) NULL ,
EventDate smalldatetime NULL DEFAULT GETDATE(),
EventEndDate smalldatetime NULL DEFAULT DATEADD(day, 1, GETDATE()), EventCreator nvarchar (50) NOT NULL DEFAULT SYSTEM_USER
) Ví dụ 2:
Tạo bảng Events không có default constraint CREATE TABLE Events
( EventID int IDENTITY (1, 1) NOT NULL, EventType nvarchar (10) NOT NULL, EventTitle nvarchar (100) NULL, EventDescription ntext NULL, EventLanguage nvarchar (2) NULL, EventDate smalldatetime NULL, EventEndDate smalldatetime NULL, EventCreator nvarchar (50) NOT NULL )
Thêm các default constraint cho bảng Events ALTER TABLE Events
ADD DEFAULT ‘Party’ FOR EventType ---
ALTER TABLE Events
ADD CONSTRAINT EVentDate_DF DEFAULT GETDATE() FOR EventDate
Kiểm tra constraint
Sp_helpConstraint Events
--- chèn một mẫu tin trống vào bảng Events INSERT Events DEFAULT VALUES
Kết quả
Xoá default constraint
ALTER TABLE Events
DROP CONSTRAINT DF__Events__EventTyp__7E6CC920 ALTER TABLE Events
DROP CONSTRAINT EVentDate_DF
3.2.2.2 Default Object
Default object là một cách khác để định nghĩa một giá trị mặc định cho một cột. Các Default Object được gọi là “default” có đầu tiên trong phiên bản 2000 của SQL Server. Các Default không là một phần của toàn vẹn khai báo bởi vì chúng không là một của cấu trúc bảng; chúng thực sự là một phần của lược đồ CSDL.
Quá trình khai báo một Default như sau: - Định nghĩa Default.
- Kết Default vào cột của bảng hoặc kiểu dữ liệu.
- Nếu muốn dùng Default thì sẽ gỡ bỏ khỏi cột hoặc kiểu dữ liệu. - Không cần Default nữa thì xoá khỏi CSDL
Định nghĩa default
CREATE DEFAULTdefaultASconstant_expression
Kết đính default với cột:
sp_binddefaultdefaultname,tablename.columnname
Kết đính default với user-defined datatype
sp_binddefaultdefaultname,datatypename[,futureonly]
Futureonly chỉ định rằng các cột đã tồn tại có liên quan đến kiểu dữ liệu sẽ không kế
thừa giá trị mặc định mới. Cờ này chỉ có thể dùng kkhi kết giá trị mặc đị nh cho kiểu dữ liệu.
Ví dụ:
CREATE DEFAULT CalifDef AS ‘CA’ GO
sp_bindefault ‘CalifDef’, ‘Orders.ShipRegion’
Gở bỏ kết đính một deault với cột
sp_unbindefaulttablename.columnname
Gở bỏ kết đính một deault với User-defined datatype
Xóa một Default
DROP DEFAULTdefaultname
Lưu ý: Chỉ xóa được những Defaut không được kết với cột hoặc kiểu dữ liệu.
Từ khóa » Câu Lệnh Default Trong Sql
-
Cách Sử Dụng Ràng Buộc DEFAULT Trong SQL
-
SQL Server: Ràng Buộc DEFAULT | V1Study
-
Default Trong SQL - Lập Trình Từ Đầu
-
Gán Giá Trị Mặc định Cho Cột (DEFAULT) Trong MySQL - Web Cơ Bản
-
Chi Tiết Bài Học 05.6 Các Ràng Buộc SQL-DEFAULT - Vimentor
-
Ràng Buộc DEFAULT Trong SQL
-
[Tự Học SQL] Tìm Hiểu Về Ràng Buộc CHECK Và DEFAULT Trong SQL
-
Default Là Gì Sql - Darkedeneurope
-
Ràng Buộc DEFAULT - Hoclaptrinh
-
SQL Default - Ook-code
-
Bài 36: DEFAULT Constraint - TEDU
-
SQL DEFAULT Constraint - TRẦN VĂN BÌNH MASTER
-
SQL DEFAULT - Plugin Thanh Toán
-
[PDF] NGÔN NGỮ TRUY VẤN DỮ LIỆU - Topica