Tình huống:
Với tư cách là Nhà phát triển SQL Server, bạn phải có nhiều cách khác nhau để chèn dữ liệu vào Bảng SQL Server.Đôi khi bạn chỉ cần chèn các bản ghi tĩnh, đôi khi bạn phải chèn dữ liệu từ một bảng khác vào bảng hiện có. Hãy xem các kỹ thuật khác nhau để chèn dữ liệu vào bảng SQL Server.
Giải pháp:
Trước tiên, hãy tạo Bảng dbo.Customer bằng cách sử dụng định nghĩa dưới đây.USE yourDatabaseName Go Create Table dbo.Customer( Id int identity(1,1), FName VARCHAR(50), LName VARCHAR(50), Age int, DOB Date, Salary Numeric(6,2))
1) Sử dụng Nhiều Phụ trang để chèn dữ liệu vào bảng.
Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values('Aamir','Shahzad',36,'1980-01-01',5000.50) GO Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values ('Raza','M',33,'1983-03-03',4900.34) GO Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values ('John','Smith',26,'1990-04-05',5000.50)
2) Sử dụng một Chèn với nhiều Giá trị
Như trong ví dụ trên, chúng tôi sử dụng nhiều lần chèn, mỗi lần chèn một bản ghi. Trong SQL Server, chúng ta có thể sử dụng Chèn đơn với nhiều giá trị như hình dưới đây.Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values('Aamir','Shahzad',36,'1980-01-01',5000.50), ('Raza','M',33,'1983-03-03',4900.34), ('John','Smith',26,'1990-04-05',5000.50)
3) Sử dụng Chọn với Chèn để chèn Bản ghi
Chúng ta có thể sử dụng truy vấn Chèn với Chọn để chèn tập hợp kết quả được trả về bởi truy vấn chọn.Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Select 'Aamir' as FName,'Shahzad' as LName,36 as Age,'1980-01-01' as DOB,5000.50 as Salary union all Select 'Raza','M',33,'1983-03-03',4900.34 Union all Select 'John','Smith',26,'1990-04-05',5000.50
4) Sử dụng Chèn mà không cung cấp Tên cột
Như bạn đã thấy trong các ví dụ trên, tôi đã sử dụng danh sách cột với Chèn, bạn không cần phải sử dụng danh sách đó nếu bạn biết thứ tự của các cột và giá trị bạn đang sử dụng cũng theo thứ tự. Tôi luôn sử dụng danh sách cột trong chèn và chọn để đảm bảo rằng tôi đang chèn dữ liệu chính xác vào bảng theo đúng cột.--Insert without provide Column Names Insert into dbo.Customer Select 'Aamir' as FName,'Shahzad' as LName,36 as Age,'1980-01-01' as DOB,5000.50 as Salary union all Select 'Raza','M',33,'1983-03-03',4900.34 Union all Select 'John','Smith',26,'1990-04-05',5000.50
Also we can use the insert without Column Names with Values option
Insert into dbo.Customer Values('Aamir','Shahzad',36,'1980-01-01',5000.50), ('Raza','M',33,'1983-03-03',4900.34), ('John','Smith',26,'1990-04-05',5000.50)
5) Chèn dữ liệu từ Bảng khác vào bảng Đích
Như chúng ta đã thấy rằng kết quả truy vấn chọn có thể được chèn vào bảng. Trong các ví dụ trên, chúng tôi đã sử dụng các giá trị tĩnh với select, Bạn có thể chọn dữ liệu từ bảng, dạng xem và chức năng, v.v. để chèn vào bảng của mình. Giả sử nếu chúng ta muốn chèn dữ liệu vào bảng dbo.Customer từ bảng dbo.CustomerUS. bạn có thể sử dụng truy vấn bên dưới.--Insert into table from another table Select into dbo.Customer(FName,LName,Age,DOB,Salary) Select FName,LName,Age,DOB,Salary from dbo.CustomerUS
Video Demo:Cách chèn dữ liệu vào SQL Sever Table bằng cách sử dụng câu lệnh T-SQL