Trong bài này mình sẽ hướng dẫn bạn cách sử dụng lệnh ALTER TABLE ALTER COLUMN
để chỉnh sửa cấu trúc của column trong SQL Server, lệnh nãy hữu ích khi bạn muốn chỉnh sửa các thông số như: kiểu dữ liệu, kích thước dữ liệu, NULL và NOT NULL.
1. Thay đổi kiểu dữ liệu của column
Để thay đổi kiểu dữ liệu của column thì bạn sử dụng cú pháp sau:
ALTER TABLE table_name ALTER COLUMN column_name new_data_type(size);
Trường hợp table đã có dữ liệu thì bạn cần phải chọn kiểu dữ liệu mới tương thích với kiểu dũ liệu cũ, nếu không bạn sẽ gặp lỗi và hành động thất bại.
Hãy xem ví dụ dưới đây.
Bài viết này được đăng tại [kiso.vn]
Giả sử ta có bảng t1
có cấu trúc như sau:
CREATE TABLE t1 (c INT);
Bây giờ bổ sung một vài dòng dữ liệu bằng lệnh INSERT (sẽ học sau).
INSERT INTO t1 VALUES (1), (2), (3);
Thay đổi kiểu dữ liệu của c
từ INT sang VARCHAR, lệnh này hoạt động bình thường vì từ INT có thể chuyển sang VARCHAR.
ALTER TABLE t1 ALTER COLUMN c VARCHAR (2);
Mình sẽ thêm một dòng dữ liệu mới:
INSERT INTO t1 VALUES ('@');
Thay đổi kiểu dữ liệu từ VARCHAR sang INT, lệnh này sẽ bị lỗi vì ký tự @
không thể chuyển sang kiểu INT.
ALTER TABLE t1 ALTER COLUMN c INT;
Lỗi: Conversion failed when converting the varchar value ‘@’ to data type int.
2. Thay đổi kích thước của column
Tương tự như ở trên, chỉ có một lưu ý là trường hợp column đã có dữ liệu thì bạn phải cân nhắc kích thước phải tương ứng, trường hợp tăng kích thước thì không sao nhưng giảm kích thước thì phải lưu ý.
Ví dụ: Giả sử ta có table sau.
CREATE TABLE t2 (c VARCHAR(10));
Tăng kích thước của c
lên thành 50.
ALTER TABLE t2 ALTER COLUMN c VARCHAR (50);<br />
Nếu bạn giảm kích thước và bị khắc với dữ liệu có sẵn thì sẽ nhận lỗi: String or binary data would be truncated.
3. Thay đổi NULL hoặc NOT NULL cho column
Cú pháp tương tự, chỉ có lưu ý như sau: Trường hợp table đã có dữ liệu và bạn muốn set từ NULL sang NOT NULL thì phải cập nhật tất cả những dòng dữ liệu nào có giá trị NULL sang rỗng trước khi thay đổi.
Giả sử có table sau.
CREATE TABLE t3 (c VARCHAR(50));
Bước 1: Lệnh cập nhật dữ liệu từ NULL sang rỗng
UPDATE t3 SET c = '' WHERE c IS NULL;
Bước 2: Thay đổi từ NULL sang NOT NULL
ALTER TABLE t3 ALTER COLUMN c VARCHAR (20) NOT NULL;
Trên là một số cách sử dụng lệnh ALTER TABLE ALTER COLUMN để thay đổi cấu trúc của column trong SQL Server.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Thay đổi kiểu dữ liệu của column2. Thay...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Thay đổi kiểu dữ liệu của column2. Thay đổi kích thước của column3. Thay đổi NULL hoặc NOT NULL cho column1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Thay đổi kiểu dữ liệu của column2. Thay đổi kích thước của column3. Thay đổi NULL hoặc NOT NULL cho columnV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp)...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Thay đổi kiểu dữ liệu của column2. Thay đổi kích thước của column3. Thay đổi NULL hoặc NOT NULL cho columnV. Phân tích và khai thác các lỗ hổng Directory traversal 1....
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Thay đổi kiểu dữ liệu của column2. Thay đổi kích thước của column3. Thay đổi NULL hoặc NOT NULL cho columnIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn...