存储过程中的TABLE参数

qu_shihong 2003-12-30 02:30:15
大家好,有个问题想请教,代码如下
CREATE PROCEDURE dbo.P_PRODUCT_LOG_SATIS_RATE
@adminDeptID numeric(12), @beginDate varchar(10), @endDate varchar(10),@result table output
AS
BEGIN
print('ok')
END
GO
编译出错,谁知道怎么回事啊?我主要是想把一个table类型的变量作为输出,该怎么写,谢谢。
...全文
141 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qu_shihong 2003-12-31
  • 打赏
  • 举报
回复
原来在存储过程里不能用啊,我原来写了一个function,里边可以用TABLE。好了,我明白了,谢谢大家。
progress99 2003-12-31
  • 打赏
  • 举报
回复
--方式一 (使用表變量)
-- drop function dbo.return_person_info1
create function dbo.return_person_info1 ( @person_no numeric(5) )

returns @person_table table
(
person_no numeric(5),
person_name varchar(8),
sex varchar(2),
degree varchar(8),
home_addr varchar(60)
)
as
begin
--插入數據至表變量
insert into @person_table(person_no,person_name,sex,degree,home_addr)
select person_no,person_name,sex,degree,home_addr
from person
where person_no=@person_no
return
end

go

-- 測試語句
-- select * from dbo.return_person_info1(500)

--方式二(直接用 return 返回)
-- drop function dbo.return_person_info2
create function dbo.return_person_info2 ( @person_no numeric(5) )

returns table
as

--插入數據至表變量
return
(select person_no,person_name,sex,degree,home_addr
from person
where person_no=@person_no
)
go

-- 測試語句
-- select * from dbo.return_person_info2(500)


--插入記錄
-- insert into 表(字段...)
-- select 對應字段... from dbo.return_person_info2(500)
waj2000 2003-12-31
  • 打赏
  • 举报
回复
table类型的变量在存储过程中不能作为返回参数!
qu_shihong 2003-12-30
  • 打赏
  • 举报
回复
嗯,果然可以用。不过我不明白,既然有TABLE数据类型不就是为了,返回结果集吗?为什么不能用呢?
1ssp 2003-12-30
  • 打赏
  • 举报
回复
CREATE PROC p_sys
AS

set nocount on
SELECT * FROM sysobjects
set nocount off
GO

-- 调用:
EXEC p_sys
qu_shihong 2003-12-30
  • 打赏
  • 举报
回复
能吗?你看上边我贴的代码,把“output”去掉,有问题吗?
qu_shihong 2003-12-30
  • 打赏
  • 举报
回复
这样就可以啊,我去试试。
wzh1215 2003-12-30
  • 打赏
  • 举报
回复
还有,即使我不把TABLE作为输出也是出错
---
那就是你的程序有问题了!
gmlxf 2003-12-30
  • 打赏
  • 举报
回复
存储过程返回一个结果集怎么办?
---
CREATE PROC p_sys
AS
SELECT * FROM sysobjects
GO

-- 调用:
EXEC p_sys
qu_shihong 2003-12-30
  • 打赏
  • 举报
回复
还有,即使我不把TABLE作为输出也是出错
qu_shihong 2003-12-30
  • 打赏
  • 举报
回复
那我想一个存储过程返回一个结果集怎么办? bobohuang兄,我没看懂你的意思 :)
shuiniu 2003-12-30
  • 打赏
  • 举报
回复
table类型的变量
1。DECLARE @local_variable (T-SQL)
2。CREATE FUNCTION (T-SQL)。
bobohuang 2003-12-30
  • 打赏
  • 举报
回复
不能使用table結果集輸出
可用臨時表
insert into #tablename
exec dbo.P_PRODUCT_LOG_SATIS_RATE 'XXX','XXX','XXX'
select * form #tablename
wzh1215 2003-12-30
  • 打赏
  • 举报
回复
table类型的变量在存储过程中不能作为返回参数!

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧