2017-08-22 93 views
1

我创建了一个存储过程,它是输出参数。存储过程:执行输出参数时未显示列名

create proc sp_withoutputparameter 
@Gender nvarchar(50), 
@employeecount int output 
as 
begin 
select @employeecount=count(id) from temployee where [email protected] 
end 


declare @Totalcount int 
execute sp_withoutputparameter @[email protected] out,@Gender='Female' 
print @Totalcount 

execute sp_withoutputparameter @[email protected] out,@Gender='Female' 
select @Totalcount 

Screen shot 1 执行上述查询之后。我得到的结果如附件所示Screen shot 2 在两个查询中,我都使用了print和select两个结果,但我没有得到列名。

请帮我解决这个问题,我应该怎么做一个查询中的修改出现列名?

+0

这将有助于如果我们能看到实际的过程 – twoleggedhorse

+0

http://sqlperformance.com/2012/10/t-sql-queries/sp_prefix –

回答

1

由于您只是输出变量作为结果,因此它不会有列名称。如果你想添加一个,只需使用别名。

select @TotalCount as 'Total # of Female Employees' 
+1

感谢ü这么多@ken它的工作 –

+0

它的工作的SELECT语句,那么print语句呢? –

+0

SELECT将结果作为表格返回,而PRINT只是将消息输出到日志。如果你想添加一个标签,只需在变量前面放一个字符串即可。例如,打印N'Total#女员工='+ CAST(@TotalCount as nvarchar(10)) – Ken

0

看起来像SQL Server,而不是MySQL,是否正确?由于您正在选择/打印一个变量,因此它没有“列”名称放在标题中。您是否尝试过:

​​

打印命令没有标题,也不应该。这意味着打印用户定义的消息。 https://docs.microsoft.com/en-us/sql/t-sql/language-elements/print-transact-sql

你可以这样做......

print '@totalCount' 
print '------------' 
print @totalCount 

这就是你怎么能够让有TSQL语句打印头。

+0

嗨凯文, 为选择语句它的工作如何print语句。如果我替换打印,而不是选择我得到一个错误。我想在列印声明中出现列名称。因为我附上了屏幕截图 –

+0

请参阅我的答案中的编辑。 –