hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Micrsoft SQL Server
Lệnh INSERT trong SQL Server

Lệnh INSERT trong SQL Server

  • 21-05-2022
  • Toanngo92
  • 1 Comment

Mục lục

  • Giới thiệu lệnh INSERT trong SQL Server
  • Một số tình huống nên lưu ý với lệnh INSERT
  • INSERT lấy thông tin trả về

Giới thiệu lệnh INSERT trong SQL Server

Câu lệnh insert sử dụng để thêm dữ liệu vào bảng trong SQL Server

Cú pháp:

INSERT INTO table_name (column_list)
VALUES (value_list)

Giải thích:

  • table_name: tên của bảng muốn thêm dữ liệu mới
  • column_list : danh sách các column, phân tách nhau bởi dấu “,”
  • value_list: là danh sách các giá trị tương ứng với column, phân tách nhau bởi dấu “,”
  • Lưu ý: Các cặp giá trị của column và value tương ứng và so khớp về thứ tự và số lượng với nhau. Cần tuân thủ đúng cú pháp

Ví dụ:

INSERT INTO Person.PersonPhone (BusinessEntityID, PhoneNumber, PhoneNumberTypeID, ModifiedDate) VALUES (299,'699-511-0142,1','2020-10-12')

Cú pháp ngắn gọn ( không cần định nghĩa cột, chỉ cần xác định đúng thứ tự của giá trị truyền vào):

INSERT INTO Person.PersonPhone VALUES (20777,'699-511-0143',1,'2020-10-12')

Giá trị của các column tương ứng như sau:

  • BusinessEntityID: 299
  • PhoneNumber: 699-511-0142
  • PhoneNumberTypeID: 1
  • ModifiedDate: 2020-10-12

Một số tình huống nên lưu ý với lệnh INSERT

Test câu lệnh insert này trong AdventureWorks2019:

USE [AdventureWorks2019]
GO
INSERT INTO [Production].[Product]
           ([Name]
           ,[ProductNumber]
           ,[MakeFlag]
           ,[FinishedGoodsFlag]
           ,[Color]
           ,[SafetyStockLevel]
           ,[ReorderPoint]
           ,[StandardCost]
           ,[ListPrice]
           ,[Size]
           ,[SizeUnitMeasureCode]
           ,[WeightUnitMeasureCode]
           ,[Weight]
           ,[DaysToManufacture]
           ,[ProductLine]
           ,[Class]
           ,[Style]
           ,[ProductSubcategoryID]
           ,[ProductModelID]
           ,[SellStartDate]
           ,[SellEndDate]
           ,[DiscontinuedDate]
           ,[rowguid]
           ,[ModifiedDate])
     VALUES
           ('Laptop Thinkpad L470'
           ,'SKU-001'
           ,0
           ,0
           ,null
           ,1000
           ,750
           ,0
           ,0
           ,null
           ,null
           ,null
           ,null
           ,0
           ,null
           ,null
           ,null
           ,null
           ,null
           ,'2008-05-01'
           ,null
           ,null
           ,NEWID()
           ,'2022-05-01'
		   )
GO

Lệnh này thì lỗi:

USE [AdventureWorks2019]
GO

INSERT INTO [Production].[Product]
           (
		   [ProductID],
		   [Name]
           ,[ProductNumber]
           ,[MakeFlag]
           ,[FinishedGoodsFlag]
           ,[Color]
           ,[SafetyStockLevel]
           ,[ReorderPoint]
           ,[StandardCost]
           ,[ListPrice]
           ,[Size]
           ,[SizeUnitMeasureCode]
           ,[WeightUnitMeasureCode]
           ,[Weight]
           ,[DaysToManufacture]
           ,[ProductLine]
           ,[Class]
           ,[Style]
           ,[ProductSubcategoryID]
           ,[ProductModelID]
           ,[SellStartDate]
           ,[SellEndDate]
           ,[DiscontinuedDate]
           ,[rowguid]
           ,[ModifiedDate])
     VALUES
           (
	    1001,
	   'Laptop Thinkpad L470'
           ,'SKU-001'
           ,0
           ,0
           ,null
           ,1000
           ,750
           ,0
           ,0
           ,null
           ,null
           ,null
           ,null
           ,0
           ,null
           ,null
           ,null
           ,null
           ,null
           ,'2008-05-01'
           ,null
           ,null
           ,NEWID()
           ,'2022-05-01'
		   )
GO
Lỗi xuất hiện khi chạy câu lệnh dưới

Lý do: trong bảng Product, cột ProductID là khóa chính (primary key) và được gán thuộc tính tự tăng (identity), trong SQL Server không được gán giá trị cho cột có giá trị tự tăng để đảm bảo toàn vẹn dữ liệu, vì vậy, chúng ta chỉ cần không insert dữ liệu vào cột ProductID là ok, cột đó sẽ được SQL Server tự động tạo dữ liệu theo cơ chế tự tăng.

INSERT lấy thông tin trả về

Tất cả dữ liệu vừa được insert sẽ được lưu trong biến inserted, và để lấy dữ liệu của inserted thì ta dùng lệnh OUTPUT. Nếu muốn lấy nhiều cột hơn ra output, phân tách các cột bởi dấu phẩy “,”:

Ví dụ lấy ID vừa inserted

USE [AdventureWorks2019]
GO
INSERT INTO [Production].[Product]
           ([Name]
           ,[ProductNumber]
           ,[MakeFlag]
           ,[FinishedGoodsFlag]
           ,[Color]
           ,[SafetyStockLevel]
           ,[ReorderPoint]
           ,[StandardCost]
           ,[ListPrice]
           ,[Size]
           ,[SizeUnitMeasureCode]
           ,[WeightUnitMeasureCode]
           ,[Weight]
           ,[DaysToManufacture]
           ,[ProductLine]
           ,[Class]
           ,[Style]
           ,[ProductSubcategoryID]
           ,[ProductModelID]
           ,[SellStartDate]
           ,[SellEndDate]
           ,[DiscontinuedDate]
           ,[rowguid]
           ,[ModifiedDate])
     OUTPUT inserted.ProductID, inserted.Name
     VALUES
           ('Dell Inspiron 5570'
           ,'SKU-002'
           ,0
           ,0
           ,null
           ,1000
           ,750
           ,0
           ,0
           ,null
           ,null
           ,null
           ,null
           ,0
           ,null
           ,null
           ,null
           ,null
           ,null
           ,'2008-05-01'
           ,null
           ,null
           ,NEWID()
           ,'2022-05-01'
		   )
GO
Output sau khi dữ liệu được insert

Bài viết liên quan:

PolyBase, Query Store, và Stretch Database trong SQL Server
Dữ liệu JSON trong SQL Server
Các tính năng nâng cao SQL trong SQL Server 2019
Giới thiệu Azure SQL
Xử lý lỗi và TRY CATCH trong SQL Server
Transaction trong SQL Server
FUNCTION (hàm) trong SQL Server
Lập trình và control of flow trong Transact SQL
Trigger trong SQL Server
Index trong SQL Server
Truy vấn metadata và Dynamyic Management Object trong SQL Server
Stored Procedure trong SQL Server

1 Comments

  1. Pingback: Table (bảng) trong SQL Server - Web888 chia sẻ kiến thức lập trình, kinh doanh, mmo

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Mẫu prompt tạo mô tả chi tiết bối cảnh

Một số cải tiến trong ASP.NET Core, Razor Page, Model Binding, Gabbage collection

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×