Изявленията PRINT са от решаващо значение във всеки език за програмиране. Те ще позволят на рутината или програмата, която изпълнявате, да изхвърли някакъв тип дневник или информация в конзолата, за да бъде прегледана и анализирана. ПЕЧАТИТЕ са ценни за отстраняване на грешки в код на приложение. В тази статия ще проучим как ефективно да използваме израза PRINT, за да помогнем за отстраняване на грешки в сложни T-SQL съхранени процедури и код.
Получаване на S започна със SQL PRINT
Единственото нещо, което трябва да направите, за да използвате PRINT, е да добавите командата PRINT преди стойността, която искате да отпечатате към конзолата. В този пример конзолата ще бъде SQL Server Management Studio, което е основната среда за разработка, с която повечето разработчици на SQL Server са запознати. Вътре в SSMS можете да видите вашите PRINT изявления в раздела „Съобщения“, след като изпълните заявка.
Резултатите ще покажат SQL заявения от таблиците на вашата база данни.
Съобщенията ще покажат изразите PRINT
Нека изпълним следната команда в пакет:
--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'
Този скрипт прави следните точки:
- Тези SELECT и PRINT могат да се изпълняват заедно
- Резултатите SELECT и PRINT се попълват в отделни раздели в SSMS
- Печатните изрази не са чувствителни към главни букви в SQL Server
Прости примери
Печат от T-SQL променлива
В примера по-долу променливата @PRINTVAR е зададена на стойност на низ „PRINTVAR“. След това тази променлива се отпечатва на два отделни реда в конзолата за управление чрез обединяване на стойностите с 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.
Отпечатване на други D атаТ да
NVARCHAR е целевият тип данни, който ще се изисква, когато печатате на конзолата в SSMS. Така че други типове данни може да бъдат изрично прехвърлени към NVARCHAR с преобразуване или конвертиране.
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))
Печат a T-SQL променлива в L опа
В примера по-долу променлива от тип @I ще се увеличава по време на всяка итерация на цикъла и ще се отпечатва. Това е добър пример за използване на PRINT за наблюдение на промените в рамките на рутина.
--ITERATE IN A WHILE LOOP AND PRINT EACH ITERATION.
DECLARE @I INT = 1
WHILE(@I <= 20)
BEGIN
PRINT @I
SET @I += 1
END
Сложен пример
Обхванахме няколко прости концепции за това как да започнете да използвате израза PRINT в T-SQL. Нека разгледаме по-стабилен и сложен пример. Ще създадем съхранена процедура, която ще приеме две цели числа и ще умножи тези две стойности заедно. Докато отговорът ще бъде върнат в резултатите, ние също ще покажем таблица за умножение в съобщенията с оператора PRINT.
Също така ще зададем NOCOUNT, така че да не получим засегнатото съобщение от 1 ред в таблицата за умножение.
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
Резултатът от действителното извикване на процедурата просто умножава двете цели числа заедно. Инструкциите PRINT също се изпълняват едновременно и предоставят таблицата за умножение, с която можем да проверим математиката и наистина 1 x 8 =8. Това е добър пример за внасяне на допълнителни подробности в съхранена процедура чрез оператора за печат.
Случаи на употреба
Допълнително регистриране
Примерите тук не бяха много сложни, но в реалния свят може да попаднете на някаква сложна логика в съхранените процедури. Инструкцията PRINT може да помогне за стесняване на тези сложности и да даде представа за променливите и събитията вътре в тях. Когато имате съмнения, добавете изявление PRINT, можете да ги коментирате, но предоставената информация може да ви спести време и усилия по-късно.
Резюме
Покрихме израза PRINT в T-SQL. Той произвежда съобщения, които могат да бъдат извлечени в SQL Server Management Studio или върнати към клиентско приложение, което чете от вашата база данни на SQL Server. Обсъдихме подхода за отпечатване на T-SQL променливи, както и други съображения за типа данни. Използвахме оператора PRINT в цикъл и по-сложна съхранена процедура, за да покажем стойността, която PRINT могат да предоставят по ежедневен оперативен начин.