2011-12-22 6 views
7

Esta es una pregunta insignificante, pero es tan dolorosa para mí. A menudo, escribiré procedimientos de la tienda con múltiples consultas en ellos. Para hacer más fácil la depuración, lo escribo de esta manera:¿Hay alguna forma de detener la línea nueva después de una instrucción de impresión en t-sql?

print 'Some notes about query 1' 
select * from someTable 

print 'some notes about query 2' 
update sometable set column = null 

entonces obtener resultados como este:

Some notes about query 1 

(8 row(s) affected) 
Some notes about query 2 

(8 row(s) affected) 

Ellos forma en que los espacios en sí hace que sea difícil de leer. Me gustaría que los resultados se vean así:

Some notes about query 1 
(8 row(s) affected) 

Some notes about query 2 
(8 row(s) affected) 

Sé que es mezquino, pero me molesta. Alguien tiene alguna idea?

Respuesta

11

Juntar las respuestas que obtenga:

--Set up test data 
DECLARE @someTable AS TABLE(id int identity, somevalue int) 

INSERT INTO @someTable (somevalue) VALUES (1) 
INSERT INTO @someTable (somevalue) VALUES (2) 
INSERT INTO @someTable (somevalue) VALUES (3) 
INSERT INTO @someTable (somevalue) VALUES (4) 
INSERT INTO @someTable (somevalue) VALUES (5) 
INSERT INTO @someTable (somevalue) VALUES (6) 
INSERT INTO @someTable (somevalue) VALUES (7) 
INSERT INTO @someTable (somevalue) VALUES (8) 

--Here's the method. 
SET NOCOUNT ON --As kd7 said this will get rid of spaces. Along with the rowcount. 

print 'Some notes about query 1' 
select * from @someTable 
print '(' + CONVERT(varchar,@@rowcount) +' row(s) affected)'--This adds the row count back in 

print '' --Formatting row to add the space you require. 

print 'Some notes about query 2' 
update @sometable set somevalue = null 
print '(' + CONVERT(varchar,@@rowcount) +' row(s) affected)' 
+0

me encanta. Hice una modificación menor para mejorar el formato y tener menos líneas de basura/depuración en mi código. En lugar de tener dos instrucciones de impresión antes y después, solo tendré una declaración de impresión después de la consulta que incluye las notas y las filas afectadas. Gracias! – TizzyFoe

4

Al configurar NOCOUNT ON, se eliminará el espacio, pero también se eliminarán las (8 fila (s) afectadas), no estoy seguro si eso es viable para usted.

1

Si necesita rowcounts en la producción - a continuación, en SSMS no hay ninguna decisión, de lo contrario usar set nocount on

PERO

siempre se puede escribir su propia aplicación para ejecutar estas consultas con su propia salida que incluye rowcounts

Cuestiones relacionadas