如何在sqlserver存储过程中输出参数,语句是什么,我不用输出参数,我只是在体内输出语句,请问是什么??
7个回答
展开全部
在定义时定义一个ouput参数,如以下存储过程根据时间产生一个唯一ID
CREATE PROCEDURE [getid](@id char(17) OUTPUT)--产生唯一码
AS
DECLARE @a datetime
select @a=getdate()
DECLARE @time1 char(10)
DECLARE @time2 char(10)
DECLARE @time3 char(10)
DECLARE @time4 char(10)
DECLARE @time5 char(10)
DECLARE @time6 char(10)
DECLARE @time7 char(10)
Select @time1=str(Datename(year,@a))
Select @time2=str(Datename(month,@a))
if Datename(month,@a)<10 select @time2='0'+rtrim(ltrim(@time2))
Select @time3=str(Datename(day,@a))
if Datename(day,@a)<10 select @time3='0'+rtrim(ltrim(@time3))
select @time4=str(Datename(hour,@a))
if Datename(hour,@a)<10 select @time4='0'+rtrim(ltrim(@time4))
Select @time5=str(Datename(minute,@a))
if Datename(minute,@a)<10 select @time5='0'+rtrim(ltrim(@time5))
Select @time6=str(Datename(second,@a))
if Datename(second,@a)<10 select @time6='0'+rtrim(ltrim(@time6))
Select @time7=str(Datename(Millisecond,@a))
if Datename(Millisecond,@a)<10 select @time7='0'+rtrim(ltrim(@time7))
if Datename(Millisecond,@a)<100 select @time7='0'+rtrim(ltrim(@time7))
select @id=ltrim(rtrim(@time1))+ltrim(rtrim(@time2))+ltrim(rtrim(@time3))+ltrim(rtrim(@time4))+ltrim(rtrim(@time5))+ltrim(rtrim(@time6))+ltrim(rtrim(@time7))
GO
在其它存储过程中用下例语句调用以上这个存储过程,如下
DECLARE @id char(17)
EXEC [getid] @id OUTPUT
这样@id就可以得到getid的返回值了
CREATE PROCEDURE [getid](@id char(17) OUTPUT)--产生唯一码
AS
DECLARE @a datetime
select @a=getdate()
DECLARE @time1 char(10)
DECLARE @time2 char(10)
DECLARE @time3 char(10)
DECLARE @time4 char(10)
DECLARE @time5 char(10)
DECLARE @time6 char(10)
DECLARE @time7 char(10)
Select @time1=str(Datename(year,@a))
Select @time2=str(Datename(month,@a))
if Datename(month,@a)<10 select @time2='0'+rtrim(ltrim(@time2))
Select @time3=str(Datename(day,@a))
if Datename(day,@a)<10 select @time3='0'+rtrim(ltrim(@time3))
select @time4=str(Datename(hour,@a))
if Datename(hour,@a)<10 select @time4='0'+rtrim(ltrim(@time4))
Select @time5=str(Datename(minute,@a))
if Datename(minute,@a)<10 select @time5='0'+rtrim(ltrim(@time5))
Select @time6=str(Datename(second,@a))
if Datename(second,@a)<10 select @time6='0'+rtrim(ltrim(@time6))
Select @time7=str(Datename(Millisecond,@a))
if Datename(Millisecond,@a)<10 select @time7='0'+rtrim(ltrim(@time7))
if Datename(Millisecond,@a)<100 select @time7='0'+rtrim(ltrim(@time7))
select @id=ltrim(rtrim(@time1))+ltrim(rtrim(@time2))+ltrim(rtrim(@time3))+ltrim(rtrim(@time4))+ltrim(rtrim(@time5))+ltrim(rtrim(@time6))+ltrim(rtrim(@time7))
GO
在其它存储过程中用下例语句调用以上这个存储过程,如下
DECLARE @id char(17)
EXEC [getid] @id OUTPUT
这样@id就可以得到getid的返回值了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
exec 存储过程名 参数=*
比如预先设置的参数为 @yy datetime 存储过程名为 procedure_test
那么语句就是
exec procedure_test @yy='日期'
其中日期是你要输入的条件
比如预先设置的参数为 @yy datetime 存储过程名为 procedure_test
那么语句就是
exec procedure_test @yy='日期'
其中日期是你要输入的条件
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
创建存储过程时,在需要输出的参数后面 加上output ,
例“ create pro [dbo].[run]
@a varchar(50) output
select @a=[a1] from [Table] where ....
执行存储过程 declare a varchar(50)
exec [run] a
select a
你要输出语句的话,将要输出的参数等于你想要的语句即可
例“ create pro [dbo].[run]
@a varchar(50) output
select @a=[a1] from [Table] where ....
执行存储过程 declare a varchar(50)
exec [run] a
select a
你要输出语句的话,将要输出的参数等于你想要的语句即可
追问
output不是输出参数吗,我的意思是在存储过程体内输出语句,类型oracle存储过程中的dbms.output.printline('xxxx');,明白否?在sqlserver中有没有类似这样的语句。。、。。
追答
print 语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出就用 return 不输出 用关键字 void
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
print 'aaaaaaaaaaaaa'
如果是参数就是
print @aa
如果是参数就是
print @aa
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询