Giá trị mặc định (Default Values)

Một phần của tài liệu CÀI ĐẶT SQL SERVER 2000 (Trang 51 - 54)

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.

6.2.2.1Default 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 tồ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 TABLE tablename(

columnname datatype [NULL | NOT NULL]

[CONSTRAINT constraintname] DEFAULT expression

[,...])

Định nghĩa Default constraint đối với một bảng đã tồn tại.

ALTER TABLE tablename

ADD [ CONSTRAINT constraintname ] DEFAULT expression FOR columnname

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 (adsbygoogle = window.adsbygoogle || []).push({});

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

SELECT * FROM Events

Kết quả

Xố default constraint

ALTER TABLE Events

DROP CONSTRAINT DF__Events__EventTyp__7E6CC920 ALTER TABLE Events

DROP CONSTRAINT EVentDate_DF

6.2.2.2Default 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 tồ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ì xố khỏi CSDL

Định nghĩa default

CREATE DEFAULT default AS constant_expression Kết đính default với cột:

Kết đính default với user-defined datatype

sp_binddefault defaultname, 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_unbindefault tablename.columnname Gở bỏ kết đính một deault với User-defined datatype

sp_unbindefault datatypename [, futureonly] Xĩa một Default

DROP DEFAULT defaultname (adsbygoogle = window.adsbygoogle || []).push({});

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.

Một phần của tài liệu CÀI ĐẶT SQL SERVER 2000 (Trang 51 - 54)