Câu lệnh PRINT rất quan trọng trong bất kỳ ngôn ngữ lập trình nào. Chúng sẽ cho phép quy trình hoặc chương trình mà bạn đang chạy kết xuất một số loại nhật ký hoặc thông tin vào bảng điều khiển để được xem và phân tích. IN có giá trị để gỡ lỗi các sự cố trong mã ứng dụng . Trong bài viết này, chúng ta sẽ khám phá cách sử dụng hiệu quả câu lệnh PRINT để giúp gỡ lỗi các thủ tục và mã được lưu trữ T-SQL phức tạp.
Nhận S làm nổi bật với SQL PRINT
Điều duy nhất bạn cần làm để sử dụng PRINT là thêm lệnh PRINT trước giá trị mà bạn muốn in vào bảng điều khiển. Trong ví dụ này, bảng điều khiển sẽ là SQL Server Management Studio, đây là môi trường phát triển chính mà hầu hết các nhà phát triển SQL Server đều quen thuộc. Bên trong SSMS, bạn có thể xem các câu lệnh PRINT của mình trên tab “Tin nhắn” sau khi chạy một truy vấn.
Kết quả sẽ hiển thị SQL được truy vấn từ các bảng cơ sở dữ liệu của bạn.
Tin nhắn sẽ hiển thị các câu lệnh PRINT
Hãy chạy lệnh sau trong một loạt:
--RUN A SELECT TO VIEW THE "RESULTS" TAB
SELECT 1
--RUN PRINT IN LOWERCASE
print 'hello coding sight reader'
--RUN PRINT IN UPPERCASE
PRINT 'HELLO CODING SIGHT READER'
Tập lệnh này thực hiện các điểm sau:
- Các CHỌN và IN đó có thể chạy cùng nhau
- Kết quả CHỌN và IN nằm trong các tab riêng biệt trong SSMS
- Câu lệnh PRINT không phân biệt chữ hoa chữ thường trong SQL Server
Ví dụ đơn giản
In từ biến T-SQL
Trong ví dụ dưới đây, biến @PRINTVAR được đặt thành giá trị chuỗi là “PRINTVAR”. Biến đó sau đó được in trên hai dòng riêng biệt trong bảng điều khiển quản lý bằng cách nối các giá trị với CHAR (13).
--SETING A VARIABLE AND PRINTING IT
DECLARE @PRINTVAR VARCHAR(500)
SET @PRINTVAR = 'PRINTVAR'
PRINT @PRINTVAR + CHAR(13) + @PRINTVAR --PRINT THE SAME VARIABLE TWICE ON DIFFERENT LINES.
In Khác D ata T ypes
NVARCHAR là kiểu dữ liệu đích sẽ được yêu cầu khi bạn in ra bảng điều khiển trong SSMS. Vì vậy, các kiểu dữ liệu khác có thể được truyền một cách rõ ràng sang NVARCHAR bằng cách truyền hoặc chuyển đổi.
DECLARE @XML XML
SET @XML = '<root>
<A>*A*</A>
<B>*B*</B>
<C>*C*</C>
<body>*Body*</body>
</root>'
PRINT CAST(@XML as NVARCHAR(MAX))
In a Biến T-SQL trong L oop
Trong ví dụ dưới đây, một biến kiểu @I sẽ được tăng lên trong mỗi lần lặp lại của vòng lặp và được in ra. Đây là một ví dụ điển hình về trường hợp sử dụng PRINT để theo dõi các thay đổi trong một quy trình.
--ITERATE IN A WHILE LOOP AND PRINT EACH ITERATION.
DECLARE @I INT = 1
WHILE(@I <= 20)
BEGIN
PRINT @I
SET @I += 1
END
Ví dụ phức tạp
Chúng tôi đã trình bày một số khái niệm đơn giản về cách bắt đầu sử dụng câu lệnh PRINT trong T-SQL. Hãy xem xét một ví dụ phức tạp và mạnh mẽ hơn. Chúng tôi sẽ tạo một thủ tục được lưu trữ sẽ chấp nhận hai giá trị nguyên và nhiều hai giá trị đó với nhau. Trong khi câu trả lời sẽ được trả về trên kết quả, chúng tôi cũng sẽ hiển thị một bảng cửu chương trong các thông báo có câu lệnh PRINT.
Chúng tôi cũng sẽ bật NOCOUNT để chúng tôi không nhận được thông báo bị ảnh hưởng 1 hàng trong bảng cửu chương.
CREATE PROC SPX_MULTIPLY_VALUES(@A INT, @B INT)
AS
SET NOCOUNT ON --REMOVE THE 1 ROWS AFFECTED IN MESSAGE
SELECT @A * @B --RETURN ANSWER
--RETURN MULTIPLICATION TABLE
PRINT '1 '+ '2 '+ '3 '+ '4 '+ '5 '+ '6 '+ '7 '+ '8 '+ '9 '+ '10 '
PRINT '2 '+ '4 '+ '6 '+ '8 '+ '10 '+ '12 '+ '14 '+ '16 '+ '18 '+ '20 '
PRINT '3 '+ '6 '+ '9 '+ '12 '+ '15 '+ '18 '+ '21 '+ '24 '+ '27 '+ '30 '
PRINT '4 '+ '8 '+ '12 '+ '16 '+ '20 '+ '24 '+ '28 '+ '32 '+ '36 '+ '40 '
PRINT '5 '+ '10 '+ '15 '+ '20 '+ '25 '+ '30 '+ '35 '+ '40 '+ '45 '+ '50 '
PRINT '6 '+ '12 '+ '18 '+ '24 '+ '30 '+ '36 '+ '42 '+ '48 '+ '54 '+ '60 '
PRINT '7 '+ '14 '+ '21 '+ '28 '+ '35 '+ '42 '+ '49 '+ '56 '+ '63 '+ '70 '
PRINT '8 '+ '16 '+ '24 '+ '32 '+ '40 '+ '48 '+ '56 '+ '64 '+ '72 '+ '80 '
PRINT '9 '+ '18 '+ '27 '+ '36 '+ '45 '+ '54 '+ '63 '+ '72 '+ '81 '+ '90 '
PRINT '10 '+ '20 '+ '30 '+ '40 '+ '50 '+ '60 '+ '70 '+ '80 '+ '90 '+ '100 '
RETURN
--EXECUTE THE PROCEDURE FOR 1 X 8
EXEC dbo.SPX_MULTIPLY_VALUES 1,8
Kết quả của lệnh gọi thủ tục thực tế chỉ đơn giản là nhân hai số nguyên với nhau. Các câu lệnh PRINT cũng chạy đồng thời và cung cấp bảng cửu chương mà chúng ta có thể kiểm tra phép toán và thực sự là 1 x 8 =8. Đây là một ví dụ điển hình về việc đưa thêm chi tiết vào một thủ tục được lưu trữ thông qua câu lệnh print.
Các trường hợp sử dụng
Ghi nhật ký bổ sung
Các ví dụ ở đây không quá phức tạp, nhưng trong thế giới thực, bạn có thể gặp phải một số logic phức tạp trong các thủ tục được lưu trữ. Tuyên bố PRINT có thể giúp thu hẹp những phức tạp đó và cung cấp cái nhìn sâu sắc về các biến và diễn biến bên trong chúng. Khi nghi ngờ, hãy thêm câu lệnh PRINT, bạn có thể nhận xét chúng nhưng thông tin chi tiết được cung cấp có thể giúp bạn tiết kiệm thời gian và công sức sau này.
Tóm tắt
Chúng tôi đã đề cập đến câu lệnh PRINT trong T-SQL. Nó tạo ra các thông báo có thể được truy xuất trong SQL Server Management Studio hoặc trả về ứng dụng khách đang đọc từ cơ sở dữ liệu SQL Server của bạn. Chúng tôi đã thảo luận về cách tiếp cận để in các biến T-SQL cũng như các cân nhắc về kiểu dữ liệu khác. Chúng tôi đã sử dụng câu lệnh PRINT trong một vòng lặp và một quy trình được lưu trữ phức tạp hơn để hiển thị giá trị mà PRINT có thể cung cấp theo cách thức hoạt động hàng ngày.