fbpx

Đếm số lượng cột của bảng trong SQL Server

Dem so luong cot cua bang du lieu trong SQL Server_MasterMOS Education
Trong quá trình làm việc với SQL và SQL Server, chúng ta sẽ rất hay gặp trường hợp cần phải thêm dữ liệu vào 1 bảng dữ liệu đang có. Việc chèn dữ liệu từ một bảng dữ liệu nguồn vào bảng dữ liệu đích có thể phát sinh lỗi không giống nhau về số lượng cột. Làm thế nào để nhanh chóng phát hiện ra các cột không giống nhau giữa 2 bảng, chúng ta cùng xem bài viết này nhé.
Chia sẻ bài viết này

Mục lục bài viết

INSERT DỮ LIỆU

Có năm cách thêm dữ liệu vào một bảng dữ liệu cũ đang có, trong đó việc sử dụng nguồn dữ liệu từ một bảng dữ liệu khác là rất phổ biến.

Trong trường hợp câu lệnh SQL chỉ rõ các cột chúng ta muốn chèn vào trong cả bảng nguồn và bảng đích, thì lỗi về chênh lệch số lượng cột sẽ không xảy ra.

Tuy nhiên, trong trường hợp chúng ta viết câu lệnh INSERT INTO ngắn gọn có dạng

INSERT INTO TEN_DATABASE.dbo.TEN_BANG_DU_LIEU_DICH

SELECT * FROM  TEN_DATABASE.dbo.TEN_BANG_DU_LIEU

LỖI PHÁT SINH

Msg 213, Level 16, State 1, Line 85

Column name or number of supplied values does not match table definition.

Đây là lỗi số lượng cột/trường dữ liệu không khớp nhau giữa 2 bảng.

PHƯƠNG ÁN XỬ LÝ

Để tìm ra các cột không giống nhau giữa 2 bảng, ta có thể dùng các câu lệnh sau:

Đếm số lượng cột đang có trong 2 bảng dữ liệu

select table_name, count(column_name) as so_luong_cot_trong_bang

from information_schema.columns

where table_catalog = ‘HISTORY_DB‘ and table_schema = ‘dbo

and table_name in

(‘STG_CRM_TXT_BANDOKH_20191231_NEW’ , ‘STG_CRM_TXT_BANDOKH_20200131_NEW’)

group by table_name

Kiểm tra xem cột ở bảng này không có ở bảng kia và ngược lại

select b1.column_name COT_1,  b2.column_name COT_2

from(

                select *

                from information_schema.columns

                where table_catalog = ‘HISTORY_DB‘ and table_schema = ‘dbo’

                and table_name = ‘STG_CRM_TXT_BANDOKH_20191231_NEW

        ) b1

full join      ( 

                 select *

                 from information_schema.columns

                 where table_catalog = ‘HISTORY_DB‘ and table_schema = ‘dbo’

                 and table_name = ‘STG_CRM_TXT_BANDOKH_20200131_NEW‘) b2

      on b1.column_name = b2.column_name

where b1.column_name is null or b2.column_name is null

Phần bôi đen là các phần tên Database, tên bảng bạn sẽ thay thế bằng tên thực tế trong Cơ sở dữ liệu của bạn.

Tham dự Nhóm Học Phân tích dữ liệu cùng MasterMOS tại https://www.fb.com/groups/mastermosvn

Hotline: 086 680 2624 | Website: https://ptdl.vn  | Facebook: https://www.fb.com/mastermosvn 

Tác giả: Ngọc Chiến MasterMOS

  • Ngọc Chiến MasterMOS là chuyên gia đào tạo Phân tích dữ liệu và Tin học ứng dụng với các chứng chỉ Microsoft Technology Associate, Data Analyst Associate, MOS Master của Microsoft. Chi tiết chứng chỉ tại: https://ptdl.vn/ccgv

  • Anh có 15 năm kinh nghiệm trong lĩnh vực Digital Banking, Management Information System (MIS) – Business Intelligence (BI) – Data Analytics (DA) tại các ngân hàng, công ty hàng đầu Việt Nam.

  • Anh có kinh nghiệm đào tạo tại nhiều ngân hàng, công ty tài chính, chứng khoán, viễn thông lớn nhất Việt Nam với trên 12 lớp OFFLINE/ZOOM, và hàng nghìn học viên trên hệ thống ONLINE LMS.PTDL.VN. Chi tiết hình ảnh các lớp học tại link https://ptdl.vn/ahv

  • Các đơn vị tiêu biểu anh đã đào tạo:  Ngân hàng Vietcombank, BIDV, MB Bank, VIB, TPBank, LPBank, PVCombank, NCB, Oceanbank, công ty tài chính Mcredit, công ty chứng khoán SSI, công ty bảo hiểm MB Ageas Life, công ty viễn thông Viettel Hà Nội, công ty XNK Viettel Commerce, công ty VNPTNET, công ty chuỗi thực phẩm TH, công ty dược Lục tỉnh Delta, Hiệp hội ngân hàng Việt Nam VNBA, UBGroup và nhiều đối tác lớn khác…

  • Anh dày công xây dựng các khóa đào tạo để biến kiến thức tin học có tính kỹ thuật cao trở nên dễ tiếp thu. Anh được học viên yêu mến gọi là “Thầy dạy tin học ứng dụng dễ hiểu nhất Việt Nam“. Anh là Founder của MasterMOS Education.

ĐĂNG KÝ NHẬN THỦ THUẬT TIN HỌC
Chúng tôi sẽ gửi bạn Kiến thức cập nhật hàng tuần qua EMAIL/ZALO
Các bài viết liên quan
Ham VLOOKUP trong Excel, huong dan cach su dung - Anh bia - Ngoc Chien MasterMOS
Cách sử dụng các hàm tìm kiếm, tham chiếu
Hàm VLOOKUP trong Excel

Hàm VLOOKUP trong Excel tìm kiếm giá trị bạn chỉ định và trả về một giá trị phù hợp từ một cột khác, từ một vùng dữ liệu tham chiếu khác.

Lợi ích của SQL trong xử lý và phân tích dữ liệu lớn
Học SQL
Lợi ích của SQL trong xử lý và phân tích dữ liệu lớn

SQL được thiết kế để xử lý khối lượng dữ liệu lớn với hiệu suất cao. Với các hệ quản trị cơ sở dữ liệu như MySQL, PostgreSQL, SQL Server, và các hệ thống dữ liệu lớn như Hadoop, Spark SQL, SQL có thể truy vấn và phân tích hàng triệu, thậm chí hàng tỷ bản ghi dữ liệu chỉ trong vài giây

Cảm ơn bạn đã ghé thăm Website MasterMOS Education. Chúng tôi có quà tặng cho bạn, hãy đăng ký nhận nếu bạn thấy phù hợp nhé :)