Database
 sql >> Base de Dados >  >> RDS >> Database

Visão geral da instrução T-SQL PRINT


As instruções PRINT são cruciais em qualquer linguagem de programação. Eles permitirão que a rotina ou programa que você está executando despeje algum tipo de log ou informação em um console para ser visualizado e analisado. PRINTs são valiosos para depurar problemas em um código de aplicativo. Neste artigo, exploraremos como usar efetivamente a instrução PRINT para ajudar a depurar códigos e procedimentos armazenados T-SQL complexos.

Conseguindo S iniciado com SQL PRINT


A única coisa que você precisa fazer para usar PRINT é anexar o comando PRINT antes do valor que você deseja imprimir no console. Neste exemplo, o console será o SQL Server Management Studio, que é o ambiente de desenvolvimento primário com o qual a maioria dos desenvolvedores do SQL Server está familiarizada. Dentro do SSMS, você pode visualizar suas instruções PRINT na guia “Mensagens” após executar uma consulta.

Os resultados mostrarão o SQL consultado nas tabelas do banco de dados.

As mensagens mostrarão as instruções PRINT

Vamos executar o seguinte comando em um lote:
--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'

Este script faz os seguintes pontos:
  • Esses SELECTs e PRINTs podem ser executados juntos
  • Os resultados SELECT e PRINT são preenchidos em guias separadas no SSMS
  • As instruções PRINT não diferenciam maiúsculas de minúsculas no SQL Server

Exemplos simples

Impressão da variável T-SQL


No exemplo abaixo, a variável @PRINTVAR é definida como um valor de string de “PRINTVAR”. Essa variável é então impressa em duas linhas separadas no console de gerenciamento concatenando os valores com 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.

Impressão Outros D ata T sim


NVARCHAR é o tipo de dados de destino que será necessário quando você imprimir no console no SSMS. Portanto, outros tipos de dados podem ser convertidos explicitamente para NVARCHAR com uma conversão ou conversão.
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))

Imprimindo um Variável T-SQL em um L opa


No exemplo abaixo, uma variável do tipo @I será aumentada durante cada iteração do loop e impressa. Este é um bom exemplo de um caso de uso PRINT para monitorar mudanças em uma rotina.
--ITERATE IN A WHILE LOOP AND PRINT EACH ITERATION.
DECLARE @I INT = 1

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

Exemplo complexo


Cobrimos vários conceitos simples de como começar a usar a instrução PRINT em T-SQL. Vamos examinar um exemplo mais robusto e complicado. Criaremos um procedimento armazenado que aceitará dois valores inteiros e multiplicará esses dois valores juntos. Embora a resposta seja retornada nos resultados, também exibiremos uma tabela de multiplicação nas mensagens com a instrução PRINT.

Também definiremos NOCOUNT para que não recebamos a mensagem afetada de 1 linha na tabela de multiplicação.
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

O resultado da chamada de procedimento real simplesmente multiplica os dois inteiros. As instruções PRINT também são executadas simultaneamente e fornecem a tabela de multiplicação com a qual podemos verificar a matemática e, de fato, 1 x 8 =8. Este é um bom exemplo de trazer detalhes extras para um procedimento armazenado por meio da instrução print.

Casos de uso

Registro Adicional


Os exemplos aqui não eram muito complexos, mas no mundo real, você pode encontrar alguma lógica complicada em procedimentos armazenados. A instrução PRINT pode ajudar a diminuir essas complexidades e fornecer informações sobre as variáveis ​​e acontecimentos dentro delas. Em caso de dúvida, adicione uma declaração PRINT, você pode comentar, mas o insight fornecido pode economizar tempo e esforço mais tarde.

Resumo


Cobrimos a instrução PRINT em T-SQL. Ele produz mensagens que podem ser recuperadas no SQL Server Management Studio ou retornadas a um aplicativo cliente que está lendo do banco de dados do SQL Server. Discutimos a abordagem para imprimir variáveis ​​T-SQL, bem como outras considerações de tipo de dados. Usamos a instrução PRINT em um loop e um procedimento armazenado mais complicado para mostrar o valor que PRINTs podem fornecer no dia a dia operacional.