Bạn có thể thêm một cột vào bảng SQL hiện có không?

Bảng là một cấu trúc logic hai chiều và là phương tiện cơ bản để lưu trữ dữ liệu trong các hệ thống quản lý cơ sở dữ liệu quan hệ. Định dạng 'hàng và cột' của nó rất giống với cách tổ chức của bảng tính.  

Mỗi bản ghi mới được đưa vào một bảng là một hàng (còn được gọi là bản ghi hoặc bộ), trong khi các hàng được nhóm thành một tập hợp hữu hạn các cột (còn được gọi là trường hoặc thuộc tính). Mỗi cột có một tên và kiểu dữ liệu và nó dùng làm tham chiếu để hiển thị các tập kết quả khi truy vấn dữ liệu từ các hệ thống cơ sở dữ liệu quan hệ

Trong bài viết này, chúng tôi khám phá các tùy chọn hiện tại cho phép chúng tôi thêm các cột mới vào bảng hiện có trong cơ sở dữ liệu SQL Server. Ca sử dụng có thể phát sinh nhiều lần. Đặc biệt, nó xảy ra khi có các bản cập nhật cho một ứng dụng và họ yêu cầu thêm các cột mới

Bạn có thể thêm một cột vào bảng SQL hiện có không?

Tạo một bảng

Để bắt đầu loạt thử nghiệm ngắn của chúng ta, hãy tạo một bảng nhỏ có bốn cột chứa thông tin cơ bản về một số công ty

-- Listing 1: Create New Table ntab
use AU
go
create table ntab (
ID INT identity (1,1)
, CompanyName varchar(100)
, CompanyAddress varchar(200)
, DateofIncorporation datetime
);

Thêm một cột

Để thêm một cột vào bảng ntab, chúng tôi thực thi mã được cung cấp trong Liệt kê 2. Kết quả là một bảng năm cột, như trong Hình 1. Chúng tôi đã tạo siêu dữ liệu này về bảng của mình bằng thủ tục được lưu trữ sp_columns

-- Listing 2: Add ManagingDirector Column to Empty Table

alter table ntab add ManagingDirector varchar(50);

exec sp_columns ntab;
Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 1. Đã thêm cột Giám đốc quản lý

Sử dụng mã trong Liệt kê 3, chúng tôi tạo một bảng mới có 1000 hàng

-- Listing 3: Add Column to Empty Table
insert into ntab values ('Simplex Technologies','Plot 121 Nova Ridge II, Appolonia City','20201023','Kenneth Igiri');
GO 1000

Sau đó, chúng tôi thêm một cột TaxIdentityNumber khác – chúng tôi có thể thực hiện thành công mà không có chi phí hoạt động rõ ràng

-- Listing 4: Add Column to Populated Table

alter table ntab add TaxIdentityNumber varchar(20);

exec sp_columns ntab;

Xoá hoặc thêm nhiều cột bằng lệnh ALTER TABLE

Trong một câu lệnh, chúng ta cũng có thể bỏ hoặc thêm cột. Quan trọng. Khi chúng tôi thả các cột từ một bảng có dữ liệu, chúng tôi sẽ mất dữ liệu rất nhanh. Nó chắc chắn không phải là một lệnh để chơi xung quanh trong sản xuất

Lệnh ALTER TABLE là lệnh Ngôn ngữ Định nghĩa Dữ liệu (DDL) tương tự như TRUNCATE. Hoạt động không được ghi lại trong nhật ký giao dịch và không thể khôi phục hoạt động đó. Nếu bạn có lý do để làm điều đó trong sản xuất, bạn nên có một bản sao lưu để bạn có thể quay lại trạng thái trước đó

-- Listing 5: Drop Column from Table

alter table ntab drop column ManagingDirector, TaxIdentityNumber;

alter table ntab add ManagingDirector varchar(50), TaxIdentityNumber varchar(20);

select * from ntab;

Quan trọng. Khi bạn cố gắng xóa một cột có chỉ mục, nó sẽ trả về lỗi (xem hình ảnh). Trước tiên, bạn phải sao lưu và thả Index

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 2. Thông báo lỗi cho cột được lập chỉ mục
Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 3. Tập kết quả một phần từ bảng ntab
Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 4. Danh sách cột được cập nhật cho Bảng ntab

Sử dụng GUI – Trình thiết kế bảng

Trước khi chúng tôi tiếp tục, lưu ý rằng bạn cần đảm bảo sử dụng phiên bản SQL Server Management Studio mới nhất. Nếu có sự không khớp giữa phiên bản cơ sở dữ liệu và phiên bản SSMS của bạn, bạn sẽ gặp lỗi sau

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 5. Thông báo lỗi khi mở Designer

Để thay đổi cấu trúc bảng, hãy mở Trình thiết kế bảng trên SSMS. nhấp chuột phải vào bảng và nhấp vào Thiết kế

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 6. Nhà thiết kế bảng mở

Bạn sẽ thấy chi tiết bảng ntab

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 7. nhà thiết kế bảng

Trong Trình thiết kế bảng, chúng tôi thêm tên cột mà chúng tôi muốn thêm và chỉ định Kiểu dữ liệu và tính vô hiệu như mong muốn

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 8. Trình thiết kế bảng – Thêm hai cột

Sau khi hoàn tất, chúng tôi lưu bảng bằng bất kỳ tùy chọn có sẵn nào. Chẳng hạn, hãy tham khảo tùy chọn có sẵn trên menu thanh SSMS

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 9. Nút “Lưu”

Có một cài đặt SQL Server Management Studio, cài đặt này có thể ngăn việc lưu bảng với các cột mới được thêm vào. Bạn có thể cần phải tắt cài đặt này

Công cụ > Tùy chọn > Trình thiết kế > Trình thiết kế bảng và cơ sở dữ liệu

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 10. Vô hiệu hóa "Ngăn chặn lưu thay đổi"

Trong nền, SQL Server thực thi cùng một SQL mà chúng tôi đã trình bày trước đó (Liệt kê 5). Chúng tôi đã trích xuất phần này bằng SQL Profiler. Bạn có thể nhận được cùng một dữ liệu với Sự kiện mở rộng

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 11. Câu lệnh nền ALTER TABLE

Sau khi hoàn tất, chúng ta có thể thấy kết quả giống như trước đây

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 12. Danh sách các cột từ Object Explorer

dbForge Studio dành cho máy chủ SQL

dbForge Studio cho SQL Server từ công ty Devart cung cấp giao diện chức năng mạnh mẽ để tương tác với SQL Server. Vì giải pháp tương tự như SSMS nên rất dễ vận hành. Nó kết nối liền mạch với phiên bản SQL Server và cho phép người dùng tương tác trơn tru với các đối tượng SQL Server. Bạn có thể tải xuống phiên bản express tại đây

Để sửa đổi một bảng trong dbForge Studio, nhấp chuột phải vào bảng đó để xem các thuộc tính chi tiết

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 13. dbForge Studio 2019

Bạn thêm một cột mới giống như cách bạn làm trong SQL Server Table Designer. Tuy nhiên, lưu ý mức độ chi tiết được hiển thị cho bảng, bao gồm cả bảng DDL. Nó mạnh mẽ hơn nhiều so với SSMS

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 14. Thêm một Cột trong dbForge Studio

dbForge Studio tuân theo các quy tắc thêm cột vào bảng giống như SQL Server Management Studio. DDL cho bảng được cập nhật ngay khi bạn thêm một cột. Tuy nhiên, bạn phải nhấn LƯU để lưu lại thay đổi

Bạn có thể thêm một cột vào bảng SQL hiện có không?
Hình 15. Lưu thay đổi bảng

Sự kết luận

Bài viết này trình bày các phương pháp chúng ta có thể sử dụng để thêm các cột vào một bảng hiện có trong SQL Server, cho dù bảng đó có dữ liệu trong đó hay không

Chúng tôi cũng đã minh họa tác động của việc loại bỏ các cột khi bảng có dữ liệu. Chúng tôi đã chỉ ra rằng lệnh ALTER TABLE là lệnh DDL. Không có nhật ký và cũng không có tác động hiệu suất đáng kể. Sử dụng Trình thiết kế bảng để chèn cột giữa các cột hiện có thay vì ở cuối danh sách cột

Chúng tôi cũng đã xem xét chức năng Devart dbForge Studio 2019. Nó có giao diện mạnh mẽ và thuận tiện hơn nhiều cho tác vụ này và các tác vụ tương tự khác. Nó cũng có thể cung cấp nhiều khả năng khác để giúp việc quản lý cơ sở dữ liệu SQL Server dễ dàng hơn nhiều

Người giới thiệu

  1. Tác động hiệu suất của các lệnh ALTER TABLE
  2. Bảng thay đổi trong T-SQL
  3. Tính năng trình thiết kế bảng trong dbForge Studio dành cho SQL Server
Thẻ. câu lệnh sql, t-sql, Trình thiết kế bảng Sửa đổi lần cuối. Ngày 18 tháng 9 năm 2021

Giới thiệu về tác giả / Kenneth Igiri

Kenneth Igiri là Kiến trúc sư doanh nghiệp của eProcess International S. A. , Trung tâm Dịch vụ chia sẻ Tập đoàn Ecobank. Kenneth có hơn mười lăm năm kinh nghiệm trong lĩnh vực Công nghệ thông tin với chín năm trong số đó tập trung vào cơ sở dữ liệu SQL Server và Oracle. Sở thích của anh bao gồm Hiệu suất cơ sở dữ liệu, HADR, Điện toán đám mây, Kiến trúc dữ liệu và Kiến trúc doanh nghiệp. Ngoài công việc, Kenneth giảng dạy tại Nhà thờ Trẻ em, viết tiểu thuyết dựa trên đức tin và giúp các doanh nghiệp nhỏ phát triển. Bạn có thể kết nối với Kenneth qua blog của anh ấy https. //kennethigiri. com, LinkedIn hoặc trên Amazon. com

Bạn có thể thêm cột vào bảng trong SQL không?

Trong SQL, tạo cột mới bằng câu lệnh ALTER TABLE. Chương trình này giúp thêm cột trong SQL. Bạn cũng có thể sửa đổi hoặc xóa các cột trong bảng hiện có. Nó cũng có thể được sử dụng để thêm hoặc loại bỏ các ràng buộc khác nhau trên bảng hiện có

Làm cách nào để thêm cột mới sau cột hiện có trong SQL Server?

Trong Tab 'Nhà thiết kế' => 'Trình thiết kế bảng và cơ sở dữ liệu', bỏ chọn tùy chọn 'Ngăn lưu các thay đổi yêu cầu tạo lại bảng'. Sau đó, nhấp chuột phải vào bảng của bạn và chọn 'Thiết kế'. Trong chế độ 'Thiết kế', chỉ cần kéo các cột để sắp xếp chúng. Đừng quên lưu