Database
 sql >> база данни >  >> RDS >> Database

Преглед на изявлението T-SQL PRINT

Изявленията 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 могат да предоставят по ежедневен оперативен начин.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите текущата дата (без време) в T-SQL

  2. Какво представляват SQL ограниченията и различните му типове?

  3. Резето FGCB_ADD_REMOVE

  4. SCD тип 2

  5. ZDLRA – RMAN-20035 невалиден висок RECID