Bài Tập 2: Thực Thi Dữ Liệu Và Stored Procedure Trong SQL Server

Skip to content
  • Khoá học / SQL
  • 2
Bài tập 2: Thực thi dữ liệu và Stored Procedure trong SQL Server

Thực hiện bài thực hành theo các yêu cầu sau:

  1. Dùng câu lệnh bcp để export tất cả dữ liệu từ bảng DatHang của CSDL QLBanHang (trong bài thực hành 1) tới c:\DatHang.txt (hoặc  c:\DatHang.csv)
  2. Thay đổi một vài dữ liệu trong file c:\DatHang.txt và lưu lại. Rồi import tới bảng DatHang từ file text này sử dụng câu lệnh bcp
  3. Import DatHang.txt tới bảng DatHang sử dụng BULK INSERT
  4. Tạo một  Linked Server với tên ‘LinkedQLKhachHang’ mà sẽ liên kết tới cơ sở dữ liệu Access có tên ‘QLKhachHang.mdb’ (trước tiên bạn cần tạo một CSDL có tên là QLKhachHang bằng phần mềm Access tương tự như bài tập 1 và nhập dữ liệu vào). Rồi thực hiện việc select dữ liệu sử dụng và thực hiện  OPENQUERY
  5. Sử dụng mô hình kết nối máy tính ad-hoc với các chức năng OPENROWSETOPENDATASOURCE để select dữ liệu từ ‘QLKhachHang.mdb’
  6. Tạo Cursor sau
DECLARE @au_lname varchar(40), @au_fname varchar(20) DECLARE Employee_Cursor CURSOR FOR SELECT LastName, FirstName FROM Northwind.dbo.Employees OPEN Employee_Cursor FETCH NEXT FROM Employee_Cursor INTO @au_lname, @au_fname WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'Author:' + @au_fname + ' ' + @au_lname FETCH NEXT FROM Employee_Cursor INTO @au_lname, @au_fname END CLOSE Employee_Cursor DEALLOCATE Employee_Cursor
  1. Tạo Stored Procedure sau và thử thực thi với một vài giá trị
CREATE PROCEDURE AddNewDatHang @IdDatHang smallint, @TenSP varchar(50), @TenKH varchar(50), @KetQua smallint=1 Output AS DECLARE @IdKhachHang smallint BEGIN TRANSACTION If not Exists(SELECT IdKhachHang FROM KhachHang WHERE [Ten]=@TenKH) BEGIN SET @IdKhachHang= (SELECT Max(IdKhachHang) FROM KhachHang) SET @IdKhachHang=@IdKhachHang+1 INSERT INTO KhachHang VALUES(@IdKhachHang,@TenKH) If Exists(SELECT IdDatHang FROM [DatHang] WHERE IdDatHang=@IdDatHang) BEGIN SELECT @KetQua=1 ROLLBACK TRANSACTION END Else BEGIN INSERT INTO [DatHang](IdDatHang,TenSP,IdKhachHang) VALUES(@IdDatHang,@TenSP,@IdKhachHang) SELECT @KetQua=0 COMMIT TRANSACTION END END Else BEGIN If Exists(SELECT IdDatHang FROM [DatHang] WHERE IdDatHang=@IdDatHang) BEGIN SELECT @KetQua=1 ROLLBACK TRANSACTION END Else BEGIN INSERT INTO [DatHang](IdDatHang,TenSP,IdKhachHang) VALUES(@IdDatHang,@TenSP,@IdKhachHang) SELECT @KetQua=0 COMMIT TRANSACTION END END Print @KetQua Return
  1. Sử dung ngôn ngữ lập trình C# hoặc VB.NET để thực thi Stored Procedure ‘AddNewOrder’, Tham khảo thêm bài viết lập trình CSDL với C# và bài giảng lập trình CSDL với ADO.NET

Các thẻ: bài tập sql serverCâu lệnh SQLStored procedure

  • Bài tiếp Bài tập 3: Trigger và View trong SQL Server
  • Bài trước Bài tập xây dựng chương trình chat bằng C#

Có thể bạn sẽ thích…

  • Khoá học SQL Server 2

    Bài 6: Stored Procedure và T-SQL nâng cao

    07/01/2017

    bởi Phan Tiến · Published 07/01/2017 · Last modified 15/11/2021

  • Khoá học về HTML 1

    Bài 17: Danh sách trong HTML

    23/02/2016

    bởi Trịnh Hồng · Published 23/02/2016

  • Khoá học Lập trình C 0

    Bài 5: Toán tử và biểu thức

    19/01/2019

    bởi Trần Thiên Thảo · Published 19/01/2019 · Last modified 13/11/2021

2 phản hồi

  • Bình luận0
  • Pingbacks2
  1. Bài 6: Stored Procedure và T-SQL nâng cao – Tran Van Toan 25/05/2017

    […] Trong ví dụ ở trên trước hết ta khai báo một biến @CustomerID sau đó bắt đầu một transaction bằng BEGIN TRANSACTION (toàn bộ công việc insert này được thực hiện trong một Transaction nghĩa là hoặc là insert thành công hoặc là không làm gì cả – all or nothing). Trước hết ta kiểm tra xem người khách hàng là người mới hay cũ. Nếu là người mới thì ta “tiện tay” insert vào bảng Customers luôn còn nếu không thì chỉ insert vào bảng Orders mà thôi. Nếu là người customer mới ta lấy CustomerID lớn nhất từ bảng Customers bỏ vào biến @CustomerID và sau đó tăng lên một đơn vị dùng cho việc Insert Customer ở dòng kế tiếp. Sau khi insert khách hàng mới mới ta tiếp tục công việc bằng việc kiểm tra xem Order muốn insert đã tồn tại chưa (vì nếu order đã tồn tại thì khi insert SQL Server sẽ báo lỗi do OrderID là Primary key). Nếu như order trên vì lý do nào đó đã có trong DB thì ta roll back và trả kết quả =1 còn nếu không thì ta insert một order mới vào và commit transaction với kết quả trả về =0. Tương tự như vậy nếu khách hàng đã tồn tại (sau chữ else đầu tiên) thì ta chỉ việc insert order giống như trên. Trong mọi trường hợp kể trên ta đều in ra kết quả và return. Ví dụ trên đây chỉ mang tính học hỏi còn trên thực tế database có thể phức tạp hơn nhiều nên việc viết stored procedure đòi hỏi kiến thức vững chắc về SQL và kỹ năng về lập trình. Muốn hiểu rõ hơn về bài học này bạn cần làm bài tập số 2. […]

  2. Bài tập 2: Thực thi dữ liệu và Stored Procedure trong SQL Server – Tran Van Toan 25/05/2017

    […] NGuồn: https://timoday.edu.vn/bai-tap-2-thuc-thi-du-lieu-va-stored-procedure-trong-sql-server/ […]

Để lại một bình luận Hủy

Bạn phải đăng nhập để gửi bình luận.

Follow:

  • Bài viết gần đây
  • Bài viết ưu thích
  • Bình luận gần đây
  • Các thẻ
  • Học Python

    Khoa học dữ liệu

    Hướng dẫn tạo môi trường ảo Python trên Windows và MacOs

    06/12/2024

  • Lập trình Java căn bản

    Lập trình Java

    Bài 7: Nhập/Xuất trong Java

    28/11/2024

  • Lập trình Java căn bản

    Lập trình Java

    Bài 6: Chuyển đổi kiểu dữ liệu

    25/11/2024

  • Lập trình Java căn bản

    Lập trình Java

    Bài 5: Biến và kiểu dữ liệu trong Java

    22/11/2024

  • Lập trình Java căn bản

    Lập trình Java

    Bài 4: Tạo dự án Java đầu tiên bằng IntelliJ

    19/11/2024

  • Lập trình Java căn bản

    Lập trình Java

    Bài 3: Cài đặt IntelliJ – IDE tốt nhất cho Java

    19/11/2024

  • Lập trình Java căn bản

    Lập trình Java

    Bài 2: Cài đặt JDK – Java Development Kit

    18/11/2024

  • Lập trình Java căn bản

    Lập trình Java

    Bài 1: Giới thiệu về ngôn ngữ lập trình Java

    18/11/2024

  • python pyqt

    PyQt6 và Qt Designer

    Tìm hiểu về QLineEdit trong PyQt6

    04/11/2024

  • python pyqt

    PyQt6 và Qt Designer

    Tìm hiểu về QPushButton trong PyQt6

    21/10/2024

  • python pyqt

    PyQt6 và Qt Designer

    Tìm hiểu về QLabel trong PyQt6

    17/10/2024

  • python pyqt

    PyQt6 và Qt Designer

    Giới thiệu Signals và Slots trong PyQt

    12/09/2024

  • Trò chơi Hamster Kombat

    Tin tức

    Với 250 triệu người chơi, Hamster Kombat đang là mục tiêu tấn công của phần mềm độc hại

    24/07/2024

  • Màn hình xanh chết chóc

    Tin tức

    Màn hình xanh chết chóc (Blue Screen) là gì?

    21/07/2024

  • Cách bảo vệ an toàn trên Internet

    Tin tức

    Khuyến nghị để đảm bảo an toàn thông tin khi truy cập Internet

    19/07/2024

  • python pyqt

    PyQt6 và Qt Designer

    PyQt6 Hello World

    15/07/2024

  • python pyqt

    PyQt6 và Qt Designer

    Giới thiệu về công cụ Qt Designer

    11/07/2024

  • python pyqt

    PyQt6 và Qt Designer

    Giới thiệu về thư viện PyQt6

    04/07/2024

  • Học Python

    Học lập trình Python

    Xác thực Password với biểu thức chính quy (Regular Expression) trong Python

    25/06/2024

  • Học Python

    Học lập trình Python

    Xác thực địa chỉ Email với biểu thức chính quy (Regular Expression) trong Python

    24/06/2024

  • bichhuynh viết: dạ anh ơi cho em hỏi chức năng doubleclick ở form...
  • Giới thiệu về thư viện PyQt6 | Tìm ở đây viết: […] Trước khi bắt đầu lập trình xây dựng giao diện...
  • Xác thực Password với biểu thức chính quy (Regular Expression) trong Python | Tìm ở đây viết: […] bài viết trước, ta được tìm hiểu về cách Xác...
  • Minh Nguyen viết: Cho em hỏi là em code giống vs mẫu sao lúc...
  • zsaka2003 viết: còn mục hàng tồn và doanh thu đâu ạ??
  • zsaka2003 viết: thưa thầy em gặp phải lỗi như bên dưới thì sửa...
  • Phan Tiến viết: Theo em số nào số lẻ? Nếu em kiểm tra được...
  • nha viết: Dạ em chào thầy em đang làm đề tài này,thầy cho...
  • viet5121198 viết: Thầy ơi em bị ntn làm cách nào để sửa ạ...
  • Phan Tiến viết: Mình đang hiểu bạn đang hỏi về hệ quản trị cơ...
  • Bài 9: Biến và câu lệnh khai báo biến | Tìm ở đây viết: […] kiểu dữ liệu cho biến sao cho phù hợp. <tên...
  • NinhAql viết: Cho em hỏi là bài này mình sử dụng cấu trúc...
  • Bài 5: Cấu trúc chung của chương trình C++ | Tìm ở đây viết: […] Xét lại chương trình đầu tiên được nhắc đến trong...
  • thinhbsua123 viết: gán hết rồi vẫn bị ạ
  • sondinh03 viết: EM muốn đăng ký thì phải làm gì ạ?
  • kuchiba123 viết: Dạ anh ơi cho em hỏi lỗi lúc e chạy thử...
  • thanhlam212 viết: Bài giảng rất đầy đủ và dễ hiểu ạ, mong thầy...
  • tien_tx1210 viết: thầy ơi, thầy xem giúp em lỗi này là bị gì...
  • hocnk viết: lúc e chạy code nó báo lỗi tại foreach (DataGridViewRow row...
  • Viet Hung viết: Chào thầy! em muốn hỏi về dòng lệnh PicAnh.Image=Image.FromFile(txtAnh.Text) , tại...
  • .NET C# Computer Graphic CSS Câu lệnh SQL Công nghệ phần mềm GIS Google Classroom google maps html html5 học css Học lập trình học python Java JavaScript kiểm thử cho thiết bị di động Kiểm thử phần mềm lap trinh lập trình C# lập trình C/C++ Lập trình Java Lập trình phân tán lập trình python lập trình scratch Lập trình đồ hoạ máy tính MS Excel ngôn ngữ C OpenGL PHP phát triển phần mềm Phần mềm học trực tuyến python Sharepoint SQL SQL Server Sử dụng mảng CSharp T-SQL testing application testing mobile thủ thuật Excel tin học ứng dụng Tính toán song song xử lý số liệu Đồ hoạ máy tính

More

Danh mục

  • .Net (39)
  • Access (1)
  • Android (2)
  • API (1)
  • Bài báo (2)
  • Bài tập C/C++ (9)
  • Bài tập Java (43)
  • Bài tập Python (24)
  • Cấu trúc dữ liệu và giải thuật (1)
  • CSS (49)
  • Demo (1)
  • Excel (31)
  • GIS (14)
  • Google Maps (7)
  • Học lập trình Python (2)
  • Học Lập trình qua Project (5)
  • HTML (55)
  • JavaScript (4)
  • Khoá học (216)
  • Khoa học dữ liệu (1)
  • Kiểm thử phần mềm (15)
  • Kiểm thử ứng dụng di động (3)
  • Lập trình C (26)
  • Lập trình C++ (9)
  • Lập trình Java (7)
  • Lập trình Mobile (2)
  • Lập trình Scratch (15)
  • Learning English (1)
  • Nghiên cứu (5)
  • Phát triển ứng dụng (2)
  • Phát triển ứng dụng WEB (1)
  • PHP (12)
  • PowerPoint (4)
  • PyQt6 và Qt Designer (7)
  • Python (6)
  • Sách, bài giảng (25)
  • SEO (1)
  • Sharepoint (4)
  • SQL (22)
  • Tài liệu (24)
  • Thư giãn (8)
  • Thủ thuật (33)
  • Tin học văn phòng (44)
  • Tin học đại cương (9)
  • Tin tức (31)
  • Tính toán phân tán (3)
  • Tính toán song song (7)
  • Tổng hợp (3)
  • Tuyển sinh – Việc làm (2)
  • Word (5)
  • Xử lý ngôn ngữ (4)
  • Đồ hoạ máy tính (3)

Từ khóa » Các Bài Tập Về Procedure Trong Sql Có Lỗi Giải