Utilizzo di PRINT
L'istruzione PRINT è utilizzata per restituire messaggi alle applicazioni. L'istruzione PRINT accetta come parametro un carattere o un'espressione stringa Unicode, che restituisce come messaggio all'applicazione. Il messaggio viene restituito alle applicazioni come errore informativo utilizzando lo spazio dei nomi SQLClient oppure le API ActiveX Data Objects (ADO), OLE DB e Open Database Connectivity (ODBC). Il codice SQLSTATE è impostato su 01000, l'errore nativo è impostato su 0 e la stringa del messaggio di errore è impostata sulla stringa di caratteri specificata nell'istruzione PRINT. La stringa viene restituita alla funzione di richiamata del gestore di messaggi nelle applicazioni DB-Library.
Per l'istruzione PRINT è possibile specificare qualsiasi espressione di stringa di caratteri, incluse le costanti e i nomi di variabili locali di tipo carattere o Unicode e le funzioni che restituiscono una stringa di caratteri o Unicode. L'istruzione PRINT supporta inoltre stringhe complesse compilate mediante la concatenazione di due o più costanti, variabili locali o funzioni.
L'istruzione PRINT risulta molto utile nella risoluzione dei problemi a livello del codice Transact-SQL per la verifica dei valori di dati o la generazione di report.
Nell'esempio seguente viene utilizzata l'istruzione PRINT all'interno di un'istruzione IF per restituire un messaggio quando il numero del prodotto Hex Nut 17 è inferiore a 1100.
USE AdventureWorks2008R2;
GO
IF (SELECT SUM(i.Quantity)
FROM Production.ProductInventory i
JOIN Production.Product p
ON i.ProductID = p.ProductID
WHERE Name = 'Hex Nut 17'
) < 1100
PRINT N'There are less than 1100 units of Hex Nut 17 in stock.'
GO
Nell'esempio seguente viene stampata la combinazione di una variabile locale, di funzioni di sistema e di una stringa di testo ottenuta mediante l'operazione di concatenazione.
USE AdventureWorks2008R2;
GO
DECLARE @MyObject NVARCHAR(257);
SET @MyObject = N'Production.Product';
PRINT N'Object Name: ' + @MyObject
PRINT N' Object ID: ' + STR(OBJECT_ID(@MyObject))
GO
Nell'esempio seguente vengono illustrate due diverse modalità di compilazione mediante concatenazione di un messaggio per l'istruzione PRINT.
-- Build a print message by concatenating strings in a PRINT
-- statement.
PRINT N'The Database Engine instance '
+ RTRIM(@@SERVERNAME)
+ N' is running SQL Server build '
+ RTRIM(CAST(SERVERPROPERTY(N'ProductVersion ') AS NVARCHAR(128)));
GO
-- This shows building a character variable that is used to
-- print a message.
DECLARE @Msg NVARCHAR(300);
SELECT @Msg = N'The Database Engine instance '
+ RTRIM(@@SERVERNAME)
+ N' is running SQL Server build '
+ RTRIM(CAST(SERVERPROPERTY(N'ProductVersion') AS NVARCHAR(128)));
PRINT @Msg;
GO