Sửa cấu bảng trong Database SQL Server

Trong thực tế việc thay đổi cấu trúc bảng vẫn thường được thực hiện đối với các bảng đã có chứa nhiều dữ liệu. Trong trường hợp này bạn tuyệt đối không hủy bỏ bảng hiện có và tạo lại cấu trúc mới bởi vì làm như thế là bạn sẽ mất đi tất cả các dữ liệu đang hiện có bên trong bảng.

Bạn có thể thay đổi cấu trúc bảng bằng tiện ích Enterprise Manager trong màn hình thiết kế bảng. Tuy nhiên, trong bài này sẽ hướng dẫn bạn các tính năng mà câu lệnh ALTER TABLE sẽ mang đến khi bạn thực hiện việc thay đổi cấu trúc bảng.

1/- Thêm một cột mới trong bảng :

Với cú pháp ALTER TABLE bên dưới cho phép bạn thêm vào một hoặc nhiều cột mới vào trong bảng hiện đang có. Tên các cột mới phải khác tên các cột hiện đang có bên trong bảng. Mặc nhiên dữ liệu của các cột mới thêm vào phải được phép bỏ trống.

Cú pháp :

Trong đó :

• Tên cột : tên của cột mới được thêm vào bảng.

• Kiểu dữ liệu : kiểud ữ liệu tương ứng của cột mới.

Ví dụ :

Để thêm vào bảng DONDH (đơn đặt hàng) một cột ngày dự kiến nhận hàng có kiểu dữ liệu là ngày. Bạn thực hiện câu lệnh ALTER TABLE như sau :

2/- Hủy bỏ cột hiện có bên trong bảng :

Với cú pháp ALTER TABLE bên dưới cho phép bạn hủy bỏ một hoặc nhiều cột hiện có bên trong bảng. Nên nhớ việc hủy bỏ các cột đồng nghĩa với các dữ liệu mà cột hiện đang lưu trữ cũng sẽ bị mất theo. Do đó cần thận trọng khi sử dụng câu lệnh này :

Cú pháp :

Trong đó :

• Tên cột : tên cột sẽ bị hủy bỏ ra khỏi bảng.

Ví dụ :

Để hủy bỏ cột ngày dự kiến nhận hàng trong bảng DONDH (đơn đặt hàng) vừa thêm ở ví dụ trên, bạn thực hiện câu lệnh ALTER TABLE như sau :

Lưu ý :

Đối với những cột nào đã có định nghĩa các quy tắc kiểm tra tòan vẹn dữ liệu thông qua các constraint thì bạn không thể hủy bỏ. Trong các trường này để có thể hủy bỏ các cột đó, trước tiên bạn phải hủy bỏ các constraint có liên quan đến chúng.

3/- Sửa đổi kiểu dữ liệu của cột :

Với cú pháp ALTER TABLE bên dưới cho phép bạn sửa đổi kiểu dữ của cột hiện có trong bảng. Đối với các kiểu dữ liệu dạng text, ntext hoặc image thì không thể đổi sang kiểu dữ liệu khác. Thông thường bạn rất ít khi sửa đổi kiểu dữ liệu của các cột một cách trực tiếp mà thay vào đó bạn thêm một cột mới với kiểu dữ liệu như mong muốn vào bảng, sau đó cập nhật dữ liệu của cột hiện có sang cột mới vừa thêm vào, kiểm tra việc dữ liệu sau khi cập nhật có đúng theo như mong muốn không. Cuối cùng là hủy bỏ cột dữ liệu cũ và đổi tên cột dữ liệu mới thành tên của cột dữ liệu cũ trước đó.

Cú pháp :

Ví dụ :

Để sửa lại kiểu dữ liệu và tăng độ dài lưu trữ của cột đơn vị tính lên 20 ký tự trong bảng VATTU (vật tư), bạn thực hiện câu lệnh ALTER TABLE như sau :

Lưu ý :

Giống như việc hủy bỏ các cột, với những cột nào đã có định nghĩa các quy tắc kiểm tra toàn vẹn dữ liệu thông qua các constraint thì bạn không thể thay đổi kiểu dữ liệu của chúng.

4/- Tắt bỏ quy tắc kiểm tra toàn vẹn dữ liệu :

Với cú pháp ALTER TABLE bên dưới cho phép bạn tạm thời bỏ qua việc kiểm tra toàn vẹn dữ liệu thông qua các đối tượng constraint bên trong bảng bằng cách tắt các quy tắc. Các quy tắc mà bạn chỉ định sẽ không còn được áp dụng dùng để kiểm tra tính toàn vẹn dữ liệu cho đến khi nào bạn bật cho nó hoạt động trở lại. Tuy nhiên các quy tắc này sẽ hoàn toàn không bị xóa đi ra khỏi cơ sở dữ liệu.

Cú pháp :

Trong đó :

• Tên constraint : tên của các constraint phải có tồn tại bên trong cơ sở dữ liệu mà bạn muốn tạm ngưng việc kiểm tra tính toàn vẹn dữ liệu trên đó.

• Từ khóa ALL : được sử dụng khi bạn muốn tạm ngưng việc kiểm tra tính toàn vẹn dữ liệu cho tất cả các constraint có liên quan đến bảng đã được định nghĩa trước đó.

Lưu ý :

Bạn tạm thời tắt việc kiểm tra dữ liệu trong cột số lượng đặt hàng của bảng CTDONDH (chi tiết đặt hàng) nằm trong miền giá trị từ 10 đến 50 khi người dùng thêm hoặc sửa dữ liệu trong bảng CTDONDH, bạn thực hiện câu lệnh ALTER TABLE như sau :

Lưu ý :

Bạn chỉ được phép tắt các quy tắc kiểm tra toàn vẹn dữ liệu của các constraint là khóa ngoại (FOREIGN KEY), miền giá trị (CHECK) và giá trị mặc định (DEFAULT). Hai loại constraint còn lại là khóa chính (PRIMARY KEY) và duy nhất (UNIQUE) hệ thống Microsoft SQL Server hoàn toàn không cho phép tắt là bởi vì hệ thống cần phải kiểm tra tính duy nhất của dữ liệu bên trong bảng có định nghĩa khóa chính.

5/- Bật lại quy tắc kiểm tra toàn vẹn dữ liệu :

Với cú pháp ALTER TABLE bên dưới cho phép bạn bật lại việc áp dụng các quy tắc kiểm tra toàn vẹn dữ liệu thông qua các đối tượng constraint bên trong bảng sau khi bạn tạm thời đã tắt đi trước đó.

Cú pháp :

Trong đó :

&# 8226 Tên constraint : tên của các constraint phải tồn tại trong cơ sở dữ liệu mà bạn muốn bật trở lại sau khi đã tắt tạm thời.

&# 8226 Từ khóa ALL : được sử dụng khi muốn bật việc kiểm tra toàn vẹn dữ liệu cho toàn bộ tất cả các constraint liên quan đến bảng.

Ví dụ :

Bạn bật lại việc kiểm tra toàn vẹn dữ liệu trong cột số lượng đặt hàng của bảng CTDONDH (chi tiết đặt hàng) đã bị tắt tạm thời ở ví dụ trên, bạn thực hiện lệnh ALTER TABLE như sau :

6/- Đổi tên cột, tên bảng dữ liệu :

Trong thực tế, việc thay đổi tên cột hoặc tên bảng dữ liệu là rất hạn chế bởi vì chúng sẽ làm ảnh hưởng rất nhiều đến các đoạn chương trình có tham chiếu đến tên cột hoặc tên bảng ở đâu đó trong ứng dụng. Bạn chỉ thực hiện việc này khi thật sự cần thiết.

Để có thể đổi tên cột hoặc tên bảng, bạn có thể vào trực tiếp tiện ích Enterprise Manager. Tuy nhiên, bạn cần biết thêm về thủ tục nội tại hệ thống (system stored procedure) có tên là sp_rename.

Các thủ tục nội tại hệ thống là một tập hợp các thủ tục do Microsoft SQL Server tạo ra và cung cấp cho người sử dụng thực hiện một số xử lý sẵn có bên trong Microsoft SQL Server.

Cú pháp :

Trong đó :

• EXE : lệnh dùng để thực thi (execute) các thủ tục nội tại bên trong Microsoft SQL Server.

• Tên bảng : tên của bảng mà bạn sẽ đổi tên hoặc tên bảng chứa tên cột mà bạn muốn đổi tên.

• Tên cột : tên cột mà bạn muốn đổi tên. Khi muốn đổi tên một cột trong bảng thì bạn phải chỉ ra đầy đủ tên bảng chứa tên cột muốn đổi tên.

• Tên mới : tên mới của cột hoặc tên mới của bảng sau khi đổi.

• COLUMN : từ khóa chỉ được sử dụng khi thay đổi tên cột.

Ví dụ :

Để thay đổi tên cột họ tên nhà cung cấp trong bảng NHACC (nhà cung cấp) từ cột cũ Tennhacc thành cột mới là Hotenncc, bạn thực hiện câu lệnh như sau :

Để thay đổi tên bảng hiện có của NHACC thành tên mới là NHACCAP, bạn thực hiện câu lệnh như sau :

Hết

One response to “Sửa cấu bảng trong Database SQL Server

  1. nguyễn hải Tháng Tám 1, 2013 lúc 12:34 sáng

    hay lắm thanks!

Gửi phản hồi

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Thay đổi )

Twitter picture

You are commenting using your Twitter account. Log Out / Thay đổi )

Facebook photo

You are commenting using your Facebook account. Log Out / Thay đổi )

Google+ photo

You are commenting using your Google+ account. Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: