Database
 sql >> Baza danych >  >> RDS >> Database

Przegląd instrukcji T-SQL PRINT

Instrukcje PRINT są kluczowe w każdym języku programowania. Umożliwią one rutynie lub programowi, który uruchamiasz, zrzucenie pewnego rodzaju dziennika lub informacji do konsoli w celu przeglądania i analizy. PRINTs są cenne przy debugowaniu problemów w kodzie aplikacji. W tym artykule dowiemy się, jak efektywnie używać instrukcji PRINT, aby pomóc w debugowaniu złożonych procedur składowanych T-SQL i kodu.

Uzyskiwanie S rozpoczęty SQL PRINT

Jedyną rzeczą, którą musisz zrobić, aby użyć PRINT, jest dodanie polecenia PRINT przed wartością, którą chcesz wydrukować na konsoli. W tym przykładzie konsolą będzie SQL Server Management Studio, które jest podstawowym środowiskiem programistycznym, które zna większość programistów SQL Server. Wewnątrz programu SSMS możesz wyświetlić swoje instrukcje PRINT na karcie „Wiadomości” po uruchomieniu zapytania.

Wyniki pokażą zapytanie SQL z tabel bazy danych.

Komunikaty pokażą instrukcje PRINT

Uruchommy następujące polecenie w partii:

--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'

Ten skrypt zawiera następujące punkty:

  • Te SELECT i PRINT mogą być uruchamiane razem
  • Wyniki SELECT i PRINT znajdują się w oddzielnych zakładkach w SSMS
  • W instrukcjach PRINT nie jest rozróżniana wielkość liter w SQL Server

Proste przykłady

Drukowanie ze zmiennej T-SQL

W poniższym przykładzie zmienna @PRINTVAR jest ustawiona na wartość ciągu „PRINTVAR”. Ta zmienna jest następnie drukowana w dwóch oddzielnych wierszach w konsoli zarządzania przez połączenie wartości z 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.

Drukowanie inne D ata T tak

NVARCHAR to docelowy typ danych, który będzie wymagany podczas drukowania do konsoli w programie SSMS. Tak więc inne typy danych mogą być jawnie rzutowane na NVARCHAR za pomocą rzutowania lub konwersji.

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))

Drukowanie a Zmienna T-SQL w L oop

W poniższym przykładzie zmienna typu @I zostanie zwiększona podczas każdej iteracji pętli i wydrukowana. To dobry przykład przypadku użycia PRINT do monitorowania zmian w procedurze.

--ITERATE IN A WHILE LOOP AND PRINT EACH ITERATION.
DECLARE @I INT = 1

WHILE(@I <= 20)
	BEGIN
		PRINT @I
		SET @I += 1
	END

Złożony przykład

Omówiliśmy kilka prostych koncepcji, jak zacząć używać instrukcji PRINT w T-SQL. Przyjrzyjmy się bardziej solidnemu i skomplikowanemu przykładowi. Stworzymy procedurę składowaną, która przyjmie dwie wartości całkowite i pomnoży te dwie wartości razem. Podczas gdy odpowiedź zostanie zwrócona w wynikach, wyświetlimy również tabliczkę mnożenia w wiadomościach z instrukcją PRINT.

Włączymy również opcję NOCOUNT, aby w tabliczce mnożenia nie otrzymać wiadomości, której dotyczy problem z 1 wierszem.

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

Wynik rzeczywistego wywołania procedury po prostu mnoży przez siebie dwie liczby całkowite. Instrukcje PRINT również działają jednocześnie i dostarczają tablicę mnożenia, za pomocą której możemy sprawdzić matematykę i rzeczywiście 1 x 8 =8. Jest to dobry przykład wprowadzenia dodatkowych szczegółów do procedury składowanej za pomocą instrukcji print.

Przypadki użycia

Dodatkowe rejestrowanie

Przykłady tutaj nie były zbyt skomplikowane, ale w prawdziwym świecie można napotkać skomplikowaną logikę w procedurach składowanych. Oświadczenie PRINT może pomóc zawęzić te zawiłości i zapewnić wgląd w zmienne i wydarzenia w nich zawarte. Jeśli masz wątpliwości, dodaj oświadczenie PRINT, możesz je skomentować, ale dostarczony wgląd może później zaoszczędzić czas i wysiłek.

Podsumowanie

Omówiliśmy instrukcję PRINT w T-SQL. Generuje komunikaty, które można pobrać w SQL Server Management Studio lub zwrócić do aplikacji klienckiej, która odczytuje z bazy danych SQL Server. Omówiliśmy podejście do drukowania zmiennych T-SQL, a także inne kwestie związane z typami danych. Użyliśmy instrukcji PRINT w pętli i bardziej skomplikowanej procedury składowanej, aby pokazać wartość, którą PRINT może dostarczyć w codziennej pracy operacyjnej.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepsze praktyki dotyczące wielojęzycznego projektowania baz danych

  2. Jak dodać dni do daty w T-SQL

  3. Jak uzyskać wczorajszą datę w T-SQL

  4. Jak drogie są niejawne konwersje po stronie kolumny?

  5. Praktyczne zastosowanie funkcji SQL COALESCE