Xin chào các bạn! Có thể cách này có nhiều bạn đã biết và cũng có nhiều cách hay hơn cho việc sử dụng vòng lặp trong SQL Server nói riêng hay những hệ quản trị cơ sở dữ liệu khác nói chung. Bên dưới đây mình xin góp vào kho tàng tin học một cách mà mình thấy khá hay và tốc độ thực thi cũng ổn định. Nếu các bạn thấy hay và có những cách khác hay hơn cho chủ đề này các bạn có thể bình luận hoặc góp ý để cùng góp chung tay vào kho tàng tin học chúng ta phát triển, không gì bằng học tập lẫn nhau phải không nè? Các bạn có thể để lại những bình luận bên dưới bài viết này. Cám ơn tất cả các bạn!
Đầu tiên, chúng ta cần phải mở SQL Server lên nhé! Nếu chưa có các bạn phải tự cài thôi. Nói chứ để link cho những bạn chưa cài đặt để đặt nhé: https://www.microsoft.com/en-us/sql-server/sql-server-downloads
Các bạn muốn tải phiên bản nào thì nhớ đọc kỹ trước khi tải nhé! Chúc may mắn! Hà hà hà….!
Tiếp theo mở một trang truy vấn mới ra và bắt đầu thực hiện truy vấn thôi.
Câu đầu tiên mình hay viết để lúc nào chúng ta bấm thực thi là phần mã chúng ta viết vẫn chạy ngon, không lại dễ văng ra mấy cái dòng đỏ đỏ ức chế lắm!
Ở đây, chúng ta sẽ kiểm tra xem bảng tạm đã tồn tại trong cơ sở dữ liệu hay chưa? Nếu có sẽ xóa bảng tạm này. Ở đây chúng ta sẽ đặt tên cho bảng tạm là #TempTable.
IF OBJECT_ID('tempdb.dbo.#TempTable', 'U') IS NOT NULL
DROP TABLE #TempTable;
Lấy dữ liệu cần thiết và chèn vào bảng tạm #TempTable. Ở đây mình lấy dữ liệu từ trường dữ liệu Value trong bảng DemoTable.
SELECT Value INTO #TempTable FROM DemoTable
Sau khi đã có dữ liệu ở bảng tạm rồi chúng ta sẽ viết một vòng lặp while để kiểm tra nếu dữ liệu của bảng tạm có tồn tại thì mình sẽ thực thi đoạn mã bên trong vòng lặp còn không thì dừng thực thi bất cứ điều gì!
WHILE EXISTS (SELECT TOP 1 * FROM #TempTable)
BEGIN
DECLARE @Value nvarchar(max)
SELECT @Value = Value FROM #TempTable
//Execute SQL Queries
DELETE FROM #TempTable WHERE Value = @Value
END
Trong đoạn mã trên các bạn lướt qua có lẽ cũng đã hiểu được dụng ý của mình trong đoạn code này rồi há! :))))
Mình sẽ lấy từng dữ liệu một của trường Value trong bảng #TempTable để thực hiện những gì mình muốn trong chỗ //Execute SQL Queries và điểm quan trọng để có thể kết thúc được đoạn truy vấn chính là chỗ câu lệnh xóa dữ liệu vừa được thực hiện trong bảng #TempTable , các bạn nên nhớ điều này nhá nếu không chương trình sẽ chạy mãi không ngừng á!
Đây là toàn bộ đoạn mã các bạn có thể tham khảo lại một lần nữa.
IF OBJECT_ID('tempdb.dbo.#TempTable', 'U') IS NOT NULL
DROP TABLE #TempTable;
SELECT Value INTO #TempTable FROM DemoTable
WHILE EXISTS (SELECT TOP 1 * FROM #TempTable)
BEGIN
DECLARE @Value nvarchar(max)
SELECT @Value = Value FROM #TempTable
//Execute SQL Queries
DELETE FROM #TempTable WHERE Value = @Value
END
Các bạn hãy luyện tập và …… luyện tập nhá! Vì với ngành tin học hàn lâm này thì không gì bằng luyện tập và mắc sai lầm cả. Có sai lầm và thử lại nhiều lần thì chúng ta mới nhớ nổi thôi! Chúc các bạn may mắn lần sau! Hè hè! … Cám ơn các bạn đã đọc và theo dõi blog của mình!