首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

初学mssql。一个有关存储过程的有关问题

2012-01-30 
初学mssql。一个有关存储过程的问题怎么把一个存储过程的返回值或者得到的结果赋给一个变量啊?比如这个存储

初学mssql。一个有关存储过程的问题
怎么把一个存储过程的返回值或者得到的结果赋给一个变量啊?
比如这个存储过程
EXEC   [master].[dbo].[xp_readerrorlog]   1, 'c:\2.asa '

我想把这个句子返回的结果赋给一个变量   。   应该怎么写句子呢?   谢谢啦!

[解决办法]
EXEC [master].[dbo].[xp_readerrorlog] 1, 'c:\2.asa '
EXEC是执行存储过程,存储过程的名称是xp_readerrorlog,参数是1和 'c:\2.asa '
------------------------------------

假设过程xp_readerrorlog为如下
Create Proc xp_readerrorlog
@No int,
@path varchar(20),
@Name varchar(20) output --带上output表示返回变量参数
As
SET NOCOUNT ON
Select @Name=Name From 表 Where No=@NO And Path=@Path
GO
现在用下列SQL语句调用这个过程
Declare @Name varchar(20)
EXEC [master].[dbo].[xp_readerrorlog] 1, 'c:\2.asa ', @Name output
Select @Name
就可以得到返回值了。
[解决办法]
上面的方法用在你的输出参数在存储过程中存在时,如果没有这样改;
Declare @Name varchar(20)
EXEC @Name=[master].[dbo].[xp_readerrorlog] 1, 'c:\2.asa '
Select @Name

[解决办法]
楼上两位正解。
[解决办法]
if (exists(select * from sysobjects where name = 'pProcName ' and type = 'p '))
drop proc pProcName
create proc pProcName(
@outvarName int out)
as
begin
set @outvarName = 123
end

declare @iOne int
exec pProcName @iOne out
select @iOne as @iOne

写了一个简单的例子


热点排行